Tema: FAQ's de PHP
Ver Mensaje Individual
  #142 (permalink)  
Antiguo 23/02/2005, 16:19
Avatar de Nefertiter
Nefertiter
 
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 23 años, 9 meses
Puntos: 9
Libreria GD

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);
?>

Última edición por Nefertiter; 23/02/2005 a las 16:31