Autor Tema: Manipulando Imagenes con PHP  (Leído 1797 veces)

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Manipulando Imagenes con PHP
« en: 21 de Agosto de 2007, 21:33:15 pm »
Bienvenidos a este nuevo tutorial, se que hace tiempo que no posteaba ninguno nuevo y por eso creo que ya es el momento de ponerse las pilas.

En este tutorial que yo me atrevo a deciros que es de los más sencillos que podeis encontrar, voy a intentar enseñaros como colorear una imagen mediante el lenguaje PHP.

La plantilla de nuestra imagen es la siguiente:


Y el objetivo es que quede asi:


Para ello vamos a usar algunas funciones que existen en PHP dedicadas a la manipulación de imagenes, antes de poder utilizarlas teneis que tener activadas las Librerias GD, unas librerias de funciones, y sin las cuales no podremos trabajar. Para saber si teneis, o no, activadas las librerias GD en vuestro servidor teneis que comprobar la configuracion de PHP.

Para comprobar vuestra configuracion de PHP debeis crear un archivo en blanco con formato php y el siguiente contenido:
<?PHP
phpinfo
();
?>

Y buscar la parte donde aparezca algo como esto:


Si aparece que GD Support esta Activado (Enabled), podemos seguir trabajando, de lo contrario deberemos activar las librerias GD, instalarlas o informar a nuestro proveedor de hosting.

Ahora viene la parte mas interesante, la manipulación de las imagenes.
<?PHP
$imagen 
imagecreatefromgif("plantilla.gif"); //Cargamos la Plantilla
$color[0] = imagecolorallocate($imagen0x000xFF0xFF);
$color[1] = imagecolorallocate($imagen0xCC0xFF0xFF);
$color[2] = imagecolorallocate($imagen0x110xFF0xCC);
$color[3] = imagecolorallocate($imagen0x220xCC0xFF);
$color[4] = imagecolorallocate($imagen0x000xFF0xCC);
$color[5] = imagecolorallocate($imagen0xCC0xFF0xCC);
imagefill($imagen115115,$color[0]);
imagefill($imagen18080,$color[1]);
imagefill($imagen20080,$color[2]);
imagefill($imagen30080,$color[3]);
imagefill($imagen40080,$color[4]);
imagefill($imagen52080,$color[5]);
header("Content-type: image/gif"); // Informamos al navegador sobre el contenido
imagegif($imagen); // Mostramos la imagen en formato gif
imagedestroy($imagen); // Liberamos el Buffer
?>


Cuando ejecutemos el codigo el resultado será el siguiente:


Mediante la funcion imagecolorallocate() definimos los colores que vamos a utilizar para colorear nuestra plantilla, y posteriormente aplicamos los colores mediante la funcion imagefill(), que colorea las regiones indicadas por nosotros.

Pronto explicare las funciones.
« Última modificación: 21 de Agosto de 2007, 21:39:23 pm por naveda »
Por favor, leete las Normas


Comunidad PHPeros

Manipulando Imagenes con PHP
« en: 21 de Agosto de 2007, 21:33:15 pm »

Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Manipulando Imagenes con PHP
« Respuesta #1 en: 21 de Agosto de 2007, 21:37:02 pm »
Muy bueno!! KARMA+

Pero tengo una duda... como sabe el navegador que te referes a ese espacio en blanco? :S
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Desconectado CarlosRdrz

  • Moderador Global
  • PHPero Master
  • *****
  • Mensajes: 2.505
  • Karma: 131
  • Sexo: Masculino
  • A.k.a. TLX
    • Ver Perfil
Re: Manipulando Imagenes con PHP
« Respuesta #2 en: 21 de Agosto de 2007, 21:42:13 pm »
G2K, la respuesta a tu pregunta se obtiene observando la funcion
imagefill($imagen18080,$color[1]);
Esta funcion colorea un area en blanco por el nuevo color.
El segundo y tercer argumento de esta funcion son las coordenadas del espacio que quieres rellenar.

Un saludo!
La dedicación de mi respuesta sera directamente proporcional a la dedicación de tu pregunta.
Hacer códigos que entiendan las máquinas es fácil, lo difícil y realmente útil es hacer códigos que entiendan las personas.
http://twitter.com/CarlosRdrz
http://www.carlosrdrz.es

Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Manipulando Imagenes con PHP
« Respuesta #3 en: 21 de Agosto de 2007, 21:45:26 pm »
Perdona, habia entendido que me habias preguntado que como sabe el navegador el tamaño de la imagen a mostrar.
A ver como te lo explico...

Los limites estan marcados por las lineas negras, al cambiar el color no sigue rellenando la imagen y solo rellena los espacios que indicamos.

¿Me explico?
Por favor, leete las Normas


Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Manipulando Imagenes con PHP
« Respuesta #4 en: 21 de Agosto de 2007, 21:49:09 pm »
mmm haver si lo e entendi bien... tu markas una cordenada no hace falta ke sea un campo entero sino ke markas una cordenada y pinta toda la area que esta de un color a otro color es así o sigo fuera de la orbita?
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Manipulando Imagenes con PHP
« Respuesta #5 en: 21 de Agosto de 2007, 21:50:15 pm »
Exactamente eso, tu marcas un solo punto del area y se colorea todo el area.
Por favor, leete las Normas


Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Manipulando Imagenes con PHP
« Respuesta #6 en: 21 de Agosto de 2007, 21:51:56 pm »
aahhhhh!!! vale, vale, vale!! entendido :D perfectamente entendido!! :D

Muchisimas gracias naveda ;)

Y me pregunto... si queremos guardar esa imagen con esos cambios a la vez que los generamos seria posible?
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011


Conectado naveda

  • Administrador General
  • PHPero Master
  • *****
  • Mensajes: 2.282
  • Karma: 165
  • Sexo: Masculino
    • Ver Perfil
    • naveda.me
Re: Manipulando Imagenes con PHP
« Respuesta #7 en: 21 de Agosto de 2007, 21:55:35 pm »
Pues es sencillisimo, solamente tenemos que añadir un parametro más a la funcion imagegif().

Ejemplo: imagegif($imagen,"carpeta/imagen.gif");
Por favor, leete las Normas


Desconectado G2K

  • Moderador de Programación General
  • PHPero Master
  • ****
  • Mensajes: 2.245
  • Karma: 76
  • Sexo: Masculino
  • Dame un punto de apoyo y moveré la Tierra
    • Ver Perfil
    • Cristian Torrijos
Re: Manipulando Imagenes con PHP
« Respuesta #8 en: 21 de Agosto de 2007, 21:57:14 pm »
Bua!! GENIAL!!!!!!!!!!!! :D

En cuanto pasen las 2h te pongo otro KARMA + ;)
Campeón del CatSkills de Webs (Enero 2011)
Campeón del SpainSkills de Webs (Abril 2011)
http://www.youtube.com/watch?v=1fBMG8F_hpM
Mejor representante catalan en SpainSkills 2011