PHP: ¿Cómo hago para crear bordes a mis imágenes?
De Foros del Web
Respuesta : Es bastante simple pero para el que no sabe nada...primero un repasito por lo basico :P para crear una imagen nueva dinamicamente, sin contenido y mostrarla
Código PHP:
<?php header("Content-type: image/png"); //definimos el tamaño de la imagen $alto = 60; $ancho = 150; $im = imagecreatetruecolor($ancho,$alto); $white = imagecolorallocate($im, 255,255,255); imagefill($im,0,0,$white); imagepng ($im); imagedestroy($im); ?>
Por ejemplo si quisieramos usar una imagen ya existente
Código PHP:
<?php header("Content-type: image/png"); //definimos el tamaño de la imagen $archivo = "imagen.png"; $im = imagecreatefrompng ($archivo); imagepng ($im); imagedestroy($im); ?>
Es bastante facil en el siguiente ejemplo usare la funcion line y dibujare una imagen nueva
Código PHP:
<?php header("Content-type: image/png"); //definimos el tamaño de la imagen $alto = 60; $ancho = 150; $im = imagecreatetruecolor($ancho,$alto); //definimos algunos colores $grey = imagecolorallocate($im, 107,107,107); $white = imagecolorallocate($im, 255,255,255); //creamos un primer fondo liso imagefill($im,0,0,$white); //creamos los bordes imageline($im, 0,0, $ancho, 0,$grey); imageline($im, $ancho-1,0, $ancho-1, $alto, $grey); imageline($im, 0, $alto-1 , $ancho, $alto-1, $grey); imageline($im, 0,$alto, 0, 0,$grey); //realizamos la salida al navegador imagepng ($im); imagedestroy($im); ?>
Ahora veremos como hacerlo con un borde "doble"
Código PHP:
<?php header("Content-type: image/png"); //definimos el tamaño de la imagen $alto = 60; $ancho = 150; $im = imagecreatetruecolor($ancho,$alto); //definimos algunos colores $grey = imagecolorallocate($im, 107,107,107); $white = imagecolorallocate($im, 255,255,255); //creamos un primer fondo liso imagefill($im,0,0,$white); //creamos los bordes imageline($im, 0,0, $ancho, 0,$grey); imageline($im, $ancho-1,0, $ancho-1, $alto, $grey); imageline($im, 0, $alto-1 , $ancho, $alto-1, $grey); imageline($im, 0,$alto, 0, 0,$grey); // bordes internos imageline($im, 2,2, $ancho-3, 2,$grey); imageline($im, $ancho-3,2, $ancho-3, $alto-3, $grey); imageline($im, 2, $alto-3 , $ancho-3, $alto-3, $grey); imageline($im, 2,$alto-3, 2, 2,$grey); //realizamos la salida al navegador imagepng ($im); imagedestroy($im); ?>
Como crear un borde con trazo no continuo (Ej: "- - - - - -")? si bien existe una funciona llamada imagedashedline definiendo styles es mucho mejor.
Código PHP:
<?php header("Content-type: image/png"); //definimos el tamaño de la imagen $alto = 60; $ancho = 150; $im = imagecreatetruecolor($ancho,$alto); //definimos algunos colores $grey = imagecolorallocate($im, 107,107,107); $white = imagecolorallocate($im, 255,255,255); //creamos un primer fondo liso imagefill($im,0,0,$white); /* cada color es un pixel esto dara una linea punteada de 4 pixeles grises y 4 pixeles blancos */ $style = array($grey,$grey, $grey, $grey, $white, $white, $white, $white); imagesetstyle($im, $style); //creamos los bordes imageline($im, 0,0, $ancho, 0,IMG_COLOR_STYLED); imageline($im, $ancho-1,0, $ancho-1, $alto, IMG_COLOR_STYLED); imageline($im, 0, $alto-1 , $ancho, $alto-1, IMG_COLOR_STYLED); imageline($im, 0,$alto, 0, 0,IMG_COLOR_STYLED); //realizamos la salida al navegador imagepng ($im); imagedestroy($im); ?>
--Nefertiter 23 Feb 2005
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
