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

882 Views

Avatar
hu

2 April 2009 at 9:27am (Last edited: 2 April 2009 9:27am), Community Member, 21 Posts

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