Hola!! estoy intentando hacer un programa para pasar una foto en truecolor a escala de grises. Cuando hago la funcion el resultado no es una imagen en escala de grises sino que m sale en escala de azul o algo parecido. No se si es que he de cambiar alguna cosa, soy nueva en esto. El codigo que tengo es el siguiente:
<?
$picture="foto.jpg";
$img= imagecreatefromjpeg($picture);
$x= imagesx($img);
$y= imagesy($img);
$copia = imagecreatetruecolor($x, $y);
for ($i=0; $i<$x; $i++)
{
for ($k=0; $k<$y; $k++)
{
$rgb = ImageColorAt($img, $i, $k);
$color = imagecolorsforindex($img, $rgb);
$r = $color['red'];
$g = $color['green'];
$b = $color['blue'];
$num_1=$r*0.2125;
$num_2=$g*0.7154;
$num_3=$b*0.0721;
$lum = ($num_1+$num_2+$num_3);
imagesetpixel($copia,$i,$k,$lum);
}
}
imagejpeg($copia,"foto_gris.jpg");
?>
Gracias por todo!!!!