Ver Mensaje Individual
  #11 (permalink)  
Antiguo 25/04/2005, 10:45
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Tienes dos opciones al parecer ..

Código PHP:
function ConvertGreyscale($image){ 
# this file outputs a grey version of specified image 

 
$total ImageColorsTotal($image); 
 for( 
$i=0$i<$total$i++){ 
    
$old ImageColorsForIndex($image$i); 
    
    
#trying to keep proper saturation when converting 
    
$commongrey = (int)(($old[red] + $old[green] + $old[blue]) / 3); 

    
ImageColorSet($image$i$commongrey$commongrey$commongrey); 
 } 

$image será tu recurso de imagen .. es decir .. lo que te resulta de hacer un imagecreatefrom....() o similar. Ahí tienes la función ImageColorsForIndex() que es la que andabas buscando junto con la otra ImageColorSet() para dar el nuevo color .. y otros cálculos con la paleta de colores ...

Y un ejemplo completo ...
Código PHP:
<? 
// $image aquí será tu "nose.jpg" ...
$image_id imageCreateFromJPEG($image); 
for(
$a=0;$a<imagecolorstotal ($image_id);$a++) 

$color ImageColorsForIndex($image_id,$i); 
$R=.299 * ($color['red'])+ .587 * ($color['green'])+ .114 * ($color['blue']); 
$G=.299 * ($color['red'])+ .587 * ($color['green'])+ .114 * ($color['blue']); 
$B=.299 * ($color['red'])+ .587 * ($color['green'])+ .114 * ($color['blue']); 
ImageColorSet($image_id$a$R$G$B); 

imageJPEG($image_id,"$image"); 
?>
(en este ejemplo .. genera el archivo nuevo sobreescribiendo el mismo .. cambia el nombre en imageJPEG() si necesitas crear la versión B&W de un original dado ...)


Extraido de .. (c) sus respectivos autores ...
http://www.webmasterworld.com/forum88/884.htm

Un saludo,