José Luis Quintana

Front-End & Back-End Developer

Simple Manipulación De Imágenes Con PHP GDImage

| Comentario(s)

GDImage es una libraría extendida de PHP GD para la manipulación de imágenes que requiren procesamiento simple como leer, crear, redimensionar, cortar, convertir y guardar imágenes en los formatos JPG, PNG y GIF.

GDImage require PHP 5.3 o superior y la librería PHP GD activada.

Manipulando una imagen externa

GDImage puede cargar imágenes desde una URL o desde una ruta específica en tu servidor web. En este ejemplo vamos a manipular una imagen desde una URL externa, para este ejemplo cargaremos una imagen desde Gravatar.

Primero, clonamos el repositorio desde Github.

1
git clone https://github.com/joseluisq/gdimage.git

Luego, creamos nuestro archivo de ejemplo gdimage-gravatar.php con el siguiete código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
// Requerimos la librería
require 'gdimage/src/GDImage/GDUtils.php';
require 'gdimage/src/GDImage/GDImage.php';

// Cargamos la imagen JPG, en este caso tiene 200 x 200 pixels
$avatar = new GDImage();
$avatar->load('http://www.gravatar.com/avatar/205e460b479e2e5b48aec07710c08d50?s=200.jpg');

// Vamos a escalar la imagen al 50%, es decir 100 x 100 pixels
$avatar->scale(50);

// Cambiamos el formato de la imagen a PNG
$avatar->toPNG();

// Preservaremos el recurso de imagen en memoría después de guardar
$avatar->preserve();

// Guardamos la imagen en nuestro servidor
$avatar->save('avatar.png');

// Ya no es necesarío preservar el recurso en memoría
$avatar->preserve(false);

// Mostramos la imagen en el navegador y eliminamos el recurso en memoría
$avatar->output();

Bien, el código de ejemplo es muy sencillo, sólo resaltar que el método preserve() que permite preservar o liberar el recurso de imagen de la memoría del servidor luego de haber llamado a los métodos save() u output() ya que estos métodos eliminan el recurso de imagen por defecto luego de invocarse.

Finalmente, puedes revisar la página de GDImage para más detalles y ejemplos.