cambiar un pixel con imagepixel e imagecolorat
Publicado por gonzalo (615 intervenciones) el 12/01/2018 21:43:58
necesito cambiar los puntos negros en una imagen y cambiarlos a tonos de gris, aqui tengo la funcion, segun yo si funciona pero no hace el cambio, alguien que me pueda ayudar
pero NO hace el cambio.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
$Gris=array
(
imagecolorallocate($im, 0, 0, 0),
imagecolorallocate($im, 30, 30, 30),
imagecolorallocate($im, 60, 60, 60),
imagecolorallocate($im, 90, 90, 90),
imagecolorallocate($im, 120, 120, 120)
);
for($x=0;$x<150;$x++)
{
for($y=0;$y<50;$y++)
{
$rgb = imagecolorat($im, $x, $y); // extrael el color en ese punto
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
//echo("$r,$g,$b ");
if($r==0 & $g==0 & $b==0) // si el color es negro, si detecta cuando el color es negro
{
//echo("ok");
imagesetpixel ($im , $x, $y, $Gris[rand(0,count($Gris)-1)]); // entonces cambialo a un tono de griz
}
}
}
header("Content-Type: image/png");
imagepng($im);
imagedestroy($im);
pero NO hace el cambio.
Valora esta pregunta


0