Foros del Web » Programando para Internet » PHP »

Cambiar un color de una imagen.

Estas en el tema de Cambiar un color de una imagen. en el foro de PHP en Foros del Web. Bien pues tengo una imagen, con partes en rojo (255, 0, 0). Quiero eliminar el rojo o convertirlo en blanco. Lo unico que me ha ...
  #1 (permalink)  
Antiguo 13/03/2012, 21:51
 
Fecha de Ingreso: enero-2004
Mensajes: 236
Antigüedad: 15 años, 10 meses
Puntos: 4
Cambiar un color de una imagen.

Bien pues tengo una imagen, con partes en rojo (255, 0, 0).

Quiero eliminar el rojo o convertirlo en blanco.

Lo unico que me ha funcionado es imagecolortransparent:

$rojo = imagecolorallocate($im, 255, 0, 0);

// Hacer el fondo transparente
imagecolortransparent($im, $negro);

Pero el resultado no es el esperado, necesitaria convertirlo en blanco, creo que la función a utilizar es imagecolorset, pero no me funciona.

Alguna idea?
  #2 (permalink)  
Antiguo 13/03/2012, 22:17
Avatar de gringofer  
Fecha de Ingreso: agosto-2010
Ubicación: Córdoba, Argentina
Mensajes: 338
Antigüedad: 9 años, 4 meses
Puntos: 22
Respuesta: Cambiar un color de una imagen.

No se si lo que sirva va a aportar, pero si sigue siendo 255,0,0 va a seguir siendo rojo, lo que tienes que lograr es que quede 0,0,0 ese es el color blanco... Ahora piensa como hacerlo :D Espero que te sirva, saludos!
__________________
Si quieres cambio verdadero, pues camina distinto...
  #3 (permalink)  
Antiguo 13/03/2012, 22:21
 
Fecha de Ingreso: enero-2004
Mensajes: 236
Antigüedad: 15 años, 10 meses
Puntos: 4
Respuesta: Cambiar un color de una imagen.

He encontrado una forma, que es pasar la imagen a gif y usar la siguiente función, pero luego el color rojo se divide en varios colores (tonalidades de rojo), y debo remplazarlos uno por uno, y la imagen pierde mucha calidad, por eso de momento no lo contemplo como opción.

Aquí lo dejo:
Código PHP:
$imgname "test.gif";
$im imagecreatefromgif ($imgname);

$index imagecolorclosest $im,  255,255,255 ); // get White COlor
imagecolorset($im,$index,92,92,92); // SET NEW COLOR

$imgname "result.gif";
imagegif($im$imgname ); // save image as gif
imagedestroy($im); 
PD: He comprobado que esta misma función, funciona en png aplicando imagetruecolortopalette($im, false, 255); pero es mas o menos como pasarla a gif.

Última edición por llnitoll; 13/03/2012 a las 22:28
  #4 (permalink)  
Antiguo 13/03/2012, 22:28
Avatar de gringofer  
Fecha de Ingreso: agosto-2010
Ubicación: Córdoba, Argentina
Mensajes: 338
Antigüedad: 9 años, 4 meses
Puntos: 22
Respuesta: Cambiar un color de una imagen.

Prueba con esta funcion bool ImagickPixel::setColor ( string $color ) Aca el link de la funcion http://php.net/manual/es/imagickpixel.setcolor.php
Despues me cuentas, saludos!
__________________
Si quieres cambio verdadero, pues camina distinto...

Etiquetas: color
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:21.