miércoles, 20 de agosto de 2014

ImageWorkShop: Clase PHP para la manipulación de imagenes


ImageWorkshop es de código abierto y una clase PHP para la gestión y manipulación de imágenes. La clase tiene una "edición de imágenes con lógica", basada en capas que permite superponer varias capas o incluso grupos de capas (con la opción de cada capa siendo manipulado de manera diferente). Tiene soporte para muchas funciones como poner una imagen (o muchas imágenes) sobre otra (bueno para las marcas de agua), recortar, mover, cambiar el tamaño, rotar (con cualquier grado), superposición, escritura y mucho más.

Principales características:
  • Facilita la creación de imágenes miniaturas (thumbnails), marcas de agua, layers, etc.
  • Herramientas para rotar, recortar, mover, superponer,… imágenes.
  • Licencia open source.
Cómo funciona ImageWorkshop

La clase ImageWorkshop permite crear/manipular 3 tipos de objetos:

  • un layer: una capa (imagen) transparente para pegar otras imágenes;
  • un grupo: un grupo de imágenes con diferentes niveles en la pila (en la superposición de las capas).
  • un documento: un grupo que engloba layers y grupos de layers.
Toda esta simple abstracción de objetos, es lo que permite manipular esta clase para procesar dinámicamente cualquier imagen o grupo de estas.

Un ejemplo práctico:

Descargamos la librería.

Usamos la siguiente imagen como base (poster-php.jpg [800x450px]):



Intentaremos aplicarle la siguiente marca de agua (dominando-php-sello.png [102x102px]):



Copiamos el archivo crearimagen.php con el siguiente código:
<?php

use PHPImageWorkshop\ImageWorkshop; 

// Cargamos la librería
require_once(__DIR__.'/PHPImageWorkshop/ImageWorkshop.php');
 
// Inicializamos la capa base
$dominandoPHPCapa = ImageWorkshop::initFromPath(__DIR__.'/images/poster-php.jpg');

// Inicializamos la marca de agua o sello
$dominandoPHPSello = ImageWorkshop::initFromPath(__DIR__.'/images/dominando-php-sello.png');

// Aplicamos el sello sobre la capa base
$dominandoPHPCapa->addLayerOnTop($dominandoPHPSello, 12, 12, "RB");

// Generamos la imagen
$image = $dominandoPHPCapa->getResult();

// Mostramos el resultado 
header('Content-type: image/jpeg');
imagejpeg($image, null, 95); // Elegimos mostrarlo en JPG con 95% de calidad
exit;
Y el resultado obtenido:

Fuente | Github | Demostración y Ejemplos | Descargar

No hay comentarios.:

Publicar un comentario