Tema: FAQ's de PHP
Ver Mensaje Individual
  #133 (permalink)  
Antiguo 23/02/2005, 16:19
Avatar de Nefertiter
Nefertiter
 
Fecha de Ingreso: enero-2003
Ubicación: Rosario
Mensajes: 1.316
Antigüedad: 21 años, 11 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($im255,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($im107,107,107);
  
$white imagecolorallocate($im255,255,255);
  
//creamos un primer fondo liso
  
imagefill($im,0,0,$white);
  
//creamos los bordes
  
imageline($im0,0$ancho0,$grey);
  
imageline($im$ancho-1,0$ancho-1$alto$grey);
  
imageline($im0$alto-$ancho$alto-1$grey);
  
imageline($im0,$alto00,$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($im107,107,107);
  
$white imagecolorallocate($im255,255,255);
  
//creamos un primer fondo liso
  
imagefill($im,0,0,$white);
  
//creamos los bordes
  
imageline($im0,0$ancho0,$grey);
  
imageline($im$ancho-1,0$ancho-1$alto$grey);
  
imageline($im0$alto-$ancho$alto-1$grey);
  
imageline($im0,$alto00,$grey);
// bordes internos
imageline($im2,2$ancho-32,$grey);
imageline($im$ancho-3,2$ancho-3$alto-3$grey);
imageline($im2$alto-$ancho-3$alto-3$grey);
imageline($im2,$alto-322,$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($im107,107,107);
  
$white imagecolorallocate($im255,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($im0,0$ancho0,IMG_COLOR_STYLED);
  
imageline($im$ancho-1,0$ancho-1$altoIMG_COLOR_STYLED);
  
imageline($im0$alto-$ancho$alto-1IMG_COLOR_STYLED);
  
imageline($im0,$alto00,IMG_COLOR_STYLED);
//realizamos la salida al navegador 
imagepng ($im);
imagedestroy($im);
?>

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