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


Reply


887 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;
   }