Editing image colors in PHP - swapping color

To specifically describe my problem, I am trying to convert all near black colors - within the threshold - to completely black. For example, in RGB terms, colors with all components less than 50 become (0,0,0). I know it can be done in GIMP from the link below, but does anyone know how it can be done in PHP?

https://askubuntu.com/questions/27578/in-gimp-can-i-change-all-black-pixels-in-a-picture-to-blue-pixels

+3


source to share


2 answers


You can use the GD library to read and set the color of an image in an image. The exact algorithm and threshold is up to you.

Read Pixel



Set pixel

0


source


I'm not a PHP programmer, but it looks something like this:

#!/usr/local/bin/php -f

<?php
$im = imagecreatefrompng("image.png");
$black = imagecolorallocate($im,0,0,0); 
$w = imagesx($im); // image width
$h = imagesy($im); // image height
for($x = 0; $x < $w; $x++) {
   for($y = 0; $y < $h; $y++) {
      // Get the colour of this pixel
      $rgb = imagecolorat($im, $x, $y);

      $r = ($rgb >> 16) & 0xFF;
      if($r>=50)continue;         // Don't bother calculating rest if over threshold

      $g = ($rgb >> 8) & 0xFF;
      if($g>=50)continue;         // Don't bother calculating rest if over threshold

      $b = $rgb & 0xFF;
      if($b>=50)continue;         // Don't bother calculating rest if over threshold

      // Change this pixel to black
      imagesetpixel($im,$x,$y,$black);
   }
}
imagepng($im,"result.png");
?>

      

What will transform this



enter image description here

to that

enter image description here

0


source







All Articles