Utilizando GD para crear Efectos Dinámico parte 1 Pregunta : Como hago para crear bordes a mis imágenes?
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);
?>