eXorithm – Execute Algorithm: View / Run Algorithm invert_image

Logo Beta

function invert_image ($image
{
  $image_width = imagesx$image);
  $image_height = imagesy$image);
  
  // if the image is not true color, make it so
  if (!imageistruecolor$image)) {
    $image2 = imagecreatetruecolor$image_width$image_height);
    imagecopy$image2$image,0,0,0,0,$image_width$image_height);
    $image = $image2
  }
  
  // loop through all the pixels
  for ($h = 0; $h < $image_height$h++) {
    for ($w = 0; $w < $image_width$w++) {
      // get the color at this pixel
      $color = imagecolorsforindex$imageimagecolorat$image$w$h));
      // invert the color
      $color'red'] = 255 - $color'red'];
      $color'green'] = 255 - $color'green'];
      $color'blue'] = 255 - $color'blue'];
      // create the new color
      $new_color = imagecolorallocate$image$color'red'], $color'green'], $color'blue']);
      // set the color
      imagesetpixel$image$w$h$new_color);
    }
  }
  
  return $image