Foros del Web » Programando para Internet » PHP »

imagecreate

Estas en el tema de imagecreate en el foro de PHP en Foros del Web. Bueno, tengo 2 imagenes las cuales tengo que poner una arriba de la otra, hasta ahi todo bien. La segunda imagen es la que iria ...
  #1 (permalink)  
Antiguo 07/11/2011, 19:57
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 1 mes
Puntos: 1
imagecreate

Bueno, tengo 2 imagenes las cuales tengo que poner una arriba de la otra, hasta ahi todo bien.





La segunda imagen es la que iria arriba de la primera, lo que tengo que hacer (y no consigo) es cambiar el color amarillo y verde de la segunda imagen por otros colores y que sean un poco transparentes como para darle un tono a la primera imagen.

Tecnicamente seria cambiar el RGB amarillo y verde de la segunda imagen por otro valor RGB, y agregarle la transparencia

No se si me explique bien pero alguien tiene una idea de como hacerlo?
  #2 (permalink)  
Antiguo 07/11/2011, 20:01
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: imagecreate

La verdad es que es algo complicado si no sabes manejarte con las funciones de la librería GD, deberías revisar varias pues no es solo una la que vas a necesitar.

Especificamente necesitas recorrer la imagen pixel por pixel, detectar el color del punto y dibujar el punto del otro color que necesitas basado en el pixel actual, etc.

Así mismo debes usar las funciones para aplicar transparencia correctamente, y mucho etc.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #3 (permalink)  
Antiguo 07/11/2011, 20:19
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: imagecreate

no hay una forma mas facil como cambiar todos los pixeles de un color especifico sabiendo el RGB a otro RGB? la unica forma seria ir pixel por pixel?
  #4 (permalink)  
Antiguo 07/11/2011, 20:20
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: imagecreate

Cita:
Iniciado por pezcri Ver Mensaje
no hay una forma mas facil como cambiar todos los pixeles de un color a otro? la unica forma seria ir pixel por pixel?
La verdad es que no me se de memoría todas las funciones de php, pero si buscas en la referencia de la librería GD podrías encontrar alguna que te sirva.

Honestamente creo que no hay una sola función que haga todo eso por arte de magia.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #5 (permalink)  
Antiguo 07/11/2011, 20:32
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: imagecreate

bueno, ya consegui cambiar el color de esta forma, solo me faltaria la transparencia :P

<?php

$im = imagecreatefrompng("o2.png");
$size = getimagesize("o2.png");
$L=$size[0];
$H=$size[1];

for($j=0;$j<$H;$j++){
for($i=0;$i<$L;$i++){

$rgb = imagecolorat($im, $i, $j);

$red = 0;
$green = 0;
$blue = 0;

$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;

if(($r==255)&&($g==255)&&($b==0)) {
$color = imagecolorallocate(
$im, $red, $green, $blue);
imagesetpixel($im, $i, $j, $color);
}
}
}
header("Content-type: image/png");
imagepng($im);
?>
  #6 (permalink)  
Antiguo 07/11/2011, 20:35
 
Fecha de Ingreso: marzo-2010
Mensajes: 17
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: imagecreate

listo, solo hay que cambiar imagecolorallocate por imagecolorallocatealpha y agregarle un parametro al final entre 0 y 127 para determinar la transparencia, por si a alguien le interesa :P

no era tan difcil como pensaba

Etiquetas: imagecreate, imagenes
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 10:39.