Generacion dinamica de Imagenes con PHP

Escrito por Mauro Rondinelli el Miércoles 17 de Abril de 2002 a las 00:00hs

Bueno con este articulo aprenderemos a crear imagenes de forma dinamica es decir en tiempo de ejecucion, el unico requisito es tener instalado el modulo GD Library, para comprobar esto crearemos una pagina nueva y pondremos el siguiente codigo PHP...

<?php
phpinfo(INFO_MODULES);
?>


Ejecutamos esta pagina y nos fijamos si en el navegador aparece la seccion GD, es algo similar a la siguiente imagen...

Si no lo tienen lo pueden descargar desde aqui.

La imagen dinamica que crearemos seran dos rectangulos, para esto lo primero que tenemos que crear es la imagen y sus dimensiones...

<?php

$img_number = imagecreate(100, 50);

?>


La funcion imagecreate nos crea una imagen cuyos parametros definen el ancho y el alto respectivamente, esta funcion nos devuelve un numero que indetificara a esa imagen. Asi con el ejemplo anterior creamos una imagen de 100x50.

El siguiente paso es crear los colores a utilizar, la forma de hacerlo es la siguiente...

<?php

$img_number = imagecreate(100,50);
$blanco = imagecolorallocate($img_number,255,255,255);
$negro = imagecolorallocate($img_number,0,0,0);
$gris = imagecolorallocate($img_number,204,204,204);

?>


Con la funcion imagecolorallocate creamos los colores que utilizaremos para la imagen pasada como primer parametro, en este caso $img_number que es el numero que identifica a la imagen creada anteriormente, los otros tres parametros son los valores RGB (rojo, verde, azul) que se utilizaran para formar los colores.

Ahora crearemos los rectangulos en la imagen...

imagefill($img_number,0,0,$gris);
ImageRectangle($img_number,5,5,94,44,$negro);
ImageRectangle($img_number,0,0,99,49,$negro);

La funcion imagefill rellena (pinta) la imagen pasada como primer parametro, el segundo y tercer parametro indican los pixeles x, y donde se comienza a pintar, el ultimo parametro indica el color con el cual pintar.

Luego creamos dos rectangulos en la imagen pasada como primer parametro, los otros 4 parametros indican la punta superior izquierza (coordenadas x, y) y la punta inferior izquierza (tambien x, y), por ultimo indicamos el color del borde.

Ahora para poder visualizar la imagen en el browser debemos indicarle al servidor que deseamos enviar una imagen para esto ponemos antes de enviar algo al navegador lo siguiente...

php header("Content-type: image/jpeg");

Listo, ya indicamos que vamos a enviar una imagen, ahora cremos la misma...

imagejpeg($img_number);

Esta funcion renderiza la imagen pasada como parametro, el resultado seria asi...

Ahora bien, guardamos esta pagina como "imagen_dinamica.php" y para mostar esta imagen creamos una nueva pagina e insertamos en el sector donde queremos la imagen dinamica el siguinte codigo HTML...

<img src="imagen_dinamica.php">

Se entiende? La imagen se va a buscar a "imagen_dinamica.php", alli se crea la imagen y se muestra.


comentarios



  1. que tal me gustaria que pusieras una tutorial de como se descarga el mudulo gd library y como se instala. por que la entrar al link que tienes arriba es un poco confuso desde cual es el que descargas y como se instala.
    soy principiantes gracias



  2. Hola, me gustaria saber cómo se podría realizar una imagen a partir de un texto, p.ej: para poner direcciones de correo en forma de imagenes o control de texto para impedir accesos automáticos de páginas "robots" (tal i como teneis implementado para poder enviar este comentario), y cómo hacer una imagen a partir de una tabla HTML, con su contenido incluido.
    Muchas gracias



  3. Interesante. Es la forma mas simple de trabajar con imagenes. Yo tenia scripts parecidos en un servidor Safe mode y funcinaban a la perfeccion, pero cuando cambiamos a Alta seguridad, simplemente no se mostraba la imagen generada ( en mi caso un thumbnail dinamico) . Alguien tiene alguna idea de como solucionar??? ... gracias



  4. buenas, creo que deberian de explicar como bajar y como instalar o configurar el gd puesto que el link que esta aqui realmente es muy confuso pues da como 10 tipos de descarga y no se realmente como se pueda configurar...puesto que mi idea es poder crear una imagen de seguridad asi como el que esta aqui en este sitio antes de postear comentarios. e encontrado varios ejemplos pero ninguno me funciona



  5. por si a alguien le sirve....fijense que encontre en el php.ini la opcion
    ;extension=php_gd2.dll que estaba comentariada.....solo le quite el punto y coma reinicie mi apache server y me funciono ahora ya me genera imagenes....espero les funcione a ustedes....



  6. ¿Se podría tener un link directo a una imagen GD tipo http://direccion/imagen.jpg ?, en vez de incrustarlo al html .



  7. He colocado como aplica2.php :

    $img_number = imagecreate(100,50);
    $blanco = imagecolorallocate($img_number,255,255,255);
    $negro = imagecolorallocate($img_number,0,0,0);
    $gris = imagecolorallocate($img_number,204,204,204);



    imagefill($img_number,0,0,$gris);
    ImageRectangle($img_number,5,5,94,44,$negro);
    ImageRectangle($img_number,0,0,99,49,$negro);


    header("Content-type: image/jpeg");

    imagejpeg($img_number);


    y Obtengo :

    Warning: Cannot modify header information - headers already sent by (output started at C:\pruebasphp\autosportcanada\aplica2.php:7) in C:\pruebasphp\autosportcanada\aplica2.php on line 20
    ÿØÿàJFIFÿþ>CREATOR: gd-jpeg v1.0 (using IJG JPEG v62), default quality ÿÛC    $.' ",#(7),01444'9=82



  8. Este codigo esta muy bien, pero donde puedo conseguir una idear despues de crear ese jpg que haga una copia de la url, porfavor...



    http://www.posicionempresarial.es/
    http://www.d-w-m.es/

agregar comentario


Se permiten las etiquetas HTML <b>, <i> y <p>. Si ingresa alguna dirección web o dirección de email serán convertidos en enlaces automáticamente.





publicidad