Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

Data Model Questions /

Bug in sapphire/filesystem/GD.php


Go to End
Reply


956 Views

Avatar
hu

Community Member, 21 Posts

2 April 2009 at 9:27am

Edited: 02/04/2009 9:27am

OUT OF RANGE ERROR

	function greyscale($rv=38, $gv=36, $bv=26) {
		$width = $this->width;
		$height = $this->height;
		$newGD = imagecreatetruecolor($this->width, $this->height);
		
		$rt = $rv + $bv + $gv;
		$rr = ($rv == 0) ? 0 : 1/($rt/$rv);
		$br = ($bv == 0) ? 0 : 1/($rt/$bv);
		$gr = ($gv == 0) ? 0 : 1/($rt/$gv);
		for($dy = 0; $dy <= $height; $dy++) {
			for($dx = 0; $dx <= $width; $dx++) {
		for($dy = 0; $dy < $height; $dy++) {
			for($dx = 0; $dx < $width; $dx++) {
				$pxrgb = imagecolorat($this->gd, $dx, $dy);
				$heightgb = ImageColorsforIndex($this->gd, $pxrgb);
				$newcol = ($rr*$heightgb['red']) + ($br*$heightgb['blue']) + ($gr*$heightgb['green']);
				$setcol = ImageColorAllocate($newGD, $newcol, $newcol, $newcol);
				imagesetpixel($newGD, $dx, $dy, $setcol);
			}
		}
		
		// imagecopyresampled($newGD, $this->gd, 0,0, $srcX, $srcY, $width, $height, $srcWidth, $srcHeight);
		
		$output = new GD();
		$output->setGD($newGD);
		if($this->quality) $output->setQuality($this->quality);
		return $output;
	}