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?
+3
source to share
2 answers
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
to that
0
source to share