[Php-avanzado] [PHP-Avanzado] Imágenes

Leonardo Tadei - Pegasus Tech Supply leonardot en pegasusnet.com.ar
Dom Nov 14 16:36:28 ARST 2010


Hola Juan Pablo,

	Buenos aportes!

El sáb, 13-11-2010 a las 14:21 -0300, Juan Pablo escribió:
> Hola a todos. Después de probar algunas cosas con las imagenes, tengo
> algunas cosas para comentar que seguro que a alguno le sirve ;).
> 
> 
> imagecreate() me crea una imagen, pero cuando pego encima otra imagen
> (del disco), ésta pierde calidad de una forma muy extraña (se
> invierten los colores, se cambian, etc).

	No es que se cambian, sino que imagecreate() maneja imágenes a 256
colores, y si la original tiene más, los matchea de una forma eficiente
en tiempo de cómputo pero horrible respecto a los colores resultantes.

> imagecreatetruecolor() te crea una imagen que no pasa eso de la
> calidad, y queda muy bien. Igualmente, a esta no le pude dar
> transparencia con imagecolortransparent().

	Tal vez, y por lo que sigue abajo, le quisiste aplicar transparencias a
un formato que no lo soporta: solo la soportan GIF y PNG.

> Para traer una imagen del disco que sea png (con gif no se) y que
> tenga transparencia es:
> $handler=imagecreatefrompng($dir);
> imagealphablending($handler,false);
> imagesavealpha($handler,true);

	Esto es una característica de los PNG, que soportan "canales alfa". No
funciona con otros formatos de imagen.


> Pero solo me funciona con una img por script.
> Si alguien sabe como hacerlo con 2 avisen ;)

	Bueno, si tu imagen luego se verá en un <img> no sirve que se puedan
procesar de a más de a una.
	Si en cambio luego del proceso las guardás en el disco, poné este
código en una función y llamada en un foreach con el contenido de un
scandir.

> Si a alguien le interesa bajarle la calidad a una imagen (como lo q
> habia preguntado) es así:
> imagejpeg($handler,NULL,$calidad);
> Calidad: de 0 (peor calidad, menos espacio) a 100 (mayor calidad,
> mayor espacio).

	Esta característica es solo de los JPEG, y lo que le estás pasando es
el porcentaje de compresión.

> el NULL es por si no la quieren grabar al disco, si no va la url de
> destino.
> Fuente: http://www.php.net/manual/en/function.imagejpeg.php
> 
> 
> Ah, por último, las coordenadas de la imagen son en x e -y (como la
> impresora), pero la del texto es x e y (como en matematica xD).

	Seguro que para el texto es así? Con qué función lo hallás?
	Tenía entendido que siempre era la coordenada superior izquierda...

> En el ejemplo que estaba en el cuaderno, no me funciona el cambio de
> color de hexa a rgb:
> 
> 
> $fondoGET=$_GET["bg"];
> $fred=base_convert(substr($fondoGET,1,2),16,10);
> $fgreen=base_convert(substr($fondoGET,3,2),16,10);
> $fblue=base_convert(substr($fondoGET,5,2),16,10);
> 
> 
> El ffffff me lo toma como amarillo, y así... (el negro me anda bien
> igual)

	ES raro, porque base_convert() solo hace conversiones de base
numérica... tal vez se lo estás luego asignando a una imagen que no
tenía ese color en la paleta!

> Saludos!

	=mente!
-- 

Leonardo Tadei
leonardot en pegasusnet.com.ar
http://blog.pegasusnet.com.ar
Firma pública: http://www.pegasusnet.com.ar/LeonardoTadei-public.key



Más información sobre la lista de distribución Php-avanzado