eXorithm – Execute Algorithm: View / Run Algorithm convert2grayscale

Logo Beta

function convert2grayscale ($image

{

  $height = imagesy$image);

  $width = imagesx$image);

  $tc = imageistruecolor$image);

  

  $new_image = imagecreatetruecolor$width$height);

  imagealphablending$new_image, false);

  imagesavealpha$new_image, true);

  

  for ($ii=0; $ii$width$ii++) {

    for ($jj=0; $jj$height$jj++) {

      $rgb = imagecolorat$image$ii$jj);

      if ($tc) {

        $r = ($rgb >> 16) & 0xFF;

        $g = ($rgb >> 8) & 0xFF;

        $b = $rgb & 0xFF;

        $alpha = ($rgb >> 24) & 0xFF;

      } else {

        $rgb = imagecolorsforindex$image$rgb);

        $r = $rgb'red'];

        $g = $rgb'green'];

        $b = $rgb'blue'];

        $alpha = $rgb'alpha'];

      }

      $avg = round(($r$g$b)/3);

      $color = imagecolorallocatealpha$new_image$avg$avg$avg$alpha);

      imagesetpixel$new_image$ii$jj$color);

    }

  }

  

  return $new_image