Presentamos las funciones más relevantes que nos ofrece la biblioteca gráfica GD.
Pasemos a continuación a describir algunas de las funciones más comúnmente utilizadas comenzando por aquellas que no tienen un verdadero propósito grafico sino más bien "administrativo". Para obtener más información sobre estas u otras funciones gráficas pasaos, como no, por la página oficial de PHP.
A notar que los archivos no tienen por qué ser almacenados como tales. Pueden ser directamente mostrados sin que para ello hayamos ocupado espacio en el disco duro. Para ello tan sólo hay que omitir la variable $nombre (entre corchetes).
Por otra parte, no todas las versiones de bibliotecas GD soportan todos los formatos. De hecho, es complicado hacerse con una misma versión que acepte las tres a la vez.
Getimagesize puede resultar muy útil para scripts de tratamiento automático de imágenes. Por otro lado, imagettfbbox resulta ser muy práctico para el centrado y posicionamiento de textos al mismo tiempo que puede servirnos en botones dinámicos para definir el tamaño de la imagen en función del tamaño del texto que vayamos a introducir.
Como ya hemos dicho, esta lista no pretende ser exhaustiva sino más bien mostrar las posibilidades que esta biblioteca nos ofrece a la vez que nos sirve para tener las funciones más importantes resumidas al alcance de la mano.
Funciones de creación y almacenamiento en archivos | ||
Función | Descripción | Sintaxis |
imagecreate | Crea una imagen de dimensiones dadas | $im = imagecreate($x,$y) |
imagecreatefromgif | Crea una imagen que tiene como fondo un archivo GIF definido | $im = imagecreatefromgif($archivo) |
imagecreatefrompng | Crea una imagen que tiene como fondo un archivo PNG definido | $im = imagecreatefrompng($archivo) |
imagecreatefromjpeg | Crea una imagen que tiene como fondo un archivo JPEG definido | $im = imagecreatefromjpeg($archivo) |
imagegif | Muestra la imagen creada en el navegador y la guarda como un archivo .gif si se especifica | $im = imagegif($im[,$archivo]) |
imagepng | Muestra la imagen creada en el navegador y la guarda como un archivo.png si se especifica | $im = imagepng($im[,$archivo]) |
imagejpeg | Muestra la imagen creada en el navegador y la guarda como un archivo.jpg si se especifica | $im = imagejpeg($im[,$archivo]) |
imagedestroy | Libera la memoria ocupada por la imagen | Imagedestroy($im) |
A notar que los archivos no tienen por qué ser almacenados como tales. Pueden ser directamente mostrados sin que para ello hayamos ocupado espacio en el disco duro. Para ello tan sólo hay que omitir la variable $nombre (entre corchetes).
Por otra parte, no todas las versiones de bibliotecas GD soportan todos los formatos. De hecho, es complicado hacerse con una misma versión que acepte las tres a la vez.
Funciones informativas | ||
Función | Descripción | Sintaxis |
getimagesize | Genera un array con las ($arr) informaciones de la imagen: Anchura, altura, formato (1 = GIF, 2 = JPG, 3 = PNG), cadena "height=altura width=anchura" del codigo HTML | $arr = getimagesize ($filename) |
imagesx | Devuelve la anchura de la imagen $im | $ancho = imagesx($im) |
imagesy | Devuelve la altura de la imagen $im | $alto= imagesy($im) |
imagecolorstotal | Devuelve el número total de colores empleados | $total = imagecolorstotal($im) |
imagettfbbox | Nos da un array con las coordenadas de las esquinas de un cuadro imaginario que rodea nuestro texto de fuente tipo True Type | $arr = imagettfbbox($talla, $angulo, $archivo_fuente, $texto) |
Getimagesize puede resultar muy útil para scripts de tratamiento automático de imágenes. Por otro lado, imagettfbbox resulta ser muy práctico para el centrado y posicionamiento de textos al mismo tiempo que puede servirnos en botones dinámicos para definir el tamaño de la imagen en función del tamaño del texto que vayamos a introducir.
Funciones gráficas | ||
Función | Descripción | Sintaxis |
imagecolorallocate | Define un color en escala RGB | $rojo = imagecolorallocate ($im, 255, 0, 0) |
imagecolorat | Define el color a partir del color presente en un punto $x, $y | $color = imagecolorat ($im, $x, $y) |
imagecolortransparent | Define un color $col de la paleta como transparente y le asigna un nuevo identificador $col_trans | $col_trans = imagecolortransparent ($im, $col) |
imagearc | Traza un arco o elipse de centro $x, $y, de ejes horizontal y vertical de $h y $v respectivamente, ángulos inicial y final de $i y $f y color $col | imagearc($im, $x, $y, $h , $v, $i, $f, $col) |
imageline | Traza una línea definida por dos puntos | imageline($im, $x1, $y1, $x2, $y2) |
imagepolygon | Traza un polígono de $n puntos cuyas coordenadas son definidas por el array $coord | imagepolygon($im, $coord., $n, $col) |
imagefilledpolygon | Dibuja un polígono coloreado de $n puntos definidos como coordenadas en el array $coord | imagefilledpolygon($im, $coord., $n, $col) |
imagerectangle | Traza un rectángulo definido por las coordenadas de dos esquinas diagonales | imagerectangle($im, $x1, $y1, $x2, $y2, $col) |
imagefilledrectangle | Dibuja un rectángulo coloreado definido por las coordenadas de dos esquinas diagonales | imagefilledrectangle($im, $x1, $y1, $x2, $y2, $col) |
imagesetpixel | Dibuja un píxel de color $col | imagesetpixel ($im, $x, $y, $col) |
imagecopyresized | Copia una superficie de una imagen origen $im_or y lo pega en una imagen destino $im_de. La imagen es tomada en forma de rectángulo de anchura $a y altura $h a partir de la esquina ($x, $y) y es pegada del mismo modo en su destino. | Imagecopyresized($im_de, $im_or, $x_de, $y_de, $x_or, $y_or, $a_de, $h_de, $a_or, $h_or) |
imagefill | Colorea una superficie con color $col | imagefill ($im, $x, $y, $col) |
imagefilltoborder | Colorea una superficie definida por un color $col1 con un color $col2 | imagefilltoborder ($im, $x, $y, $col1, $col2) |
imagestring | Escribe un texto $texto con una fuente de tamaño $talla | imagestring ($im, $talla, $x, $y, $texto, $col) |
imagettftext | Escribe un texto $texto de talla $talla con una fuente True Type cuyo nombre de archivo es $file con un ángulo $angulo | imagettftext ($im, $talla, $angulo, $x, $y, $col, $file, $texto) |
Como ya hemos dicho, esta lista no pretende ser exhaustiva sino más bien mostrar las posibilidades que esta biblioteca nos ofrece a la vez que nos sirve para tener las funciones más importantes resumidas al alcance de la mano.
Rubén Alvarez
Rubén es doctor en química y programador principalmente en sus ratos libres con...