free web hostingHosting24.com web hosting

Marca de Agua y Resize. Clases para imágenes en PHP

Este post trata sobre dos funciones útiles para el tratamiento de imágenes con PHP. “Marca de Agua” y “Resize”. Iré agregando otras funciones más adelante, como por ejemplo el efecto “Polaroid”, “Rotate”, Texto a imágen, etc.
Al final del tutorial encontrarán los archivos del ejemplo para descargarlo.

Marca de Agua y Resize en PHP

1 – Marca de Agua

Para generar una imágen con “marca de agua” incluimos el archivo ImagenFachada.php

require_once 'ImagenFachada.php';

Luego llamamos al método estático “crearMarcaAgua()” de la clase ImagenFachada, enviándole los parámetros necesarios para la imágen y almacenamos el resultado en una variable ($img):

$img = ImagenFachada::crearMarcaAgua(array(
    'imgOriginal'  => 'imagenes/marcaAgua/oldboy.jpg',
    'imgMarcaAgua' => 'imagenes/marcaAgua/marcaAgua.png',
    'imgNueva'     => 'imagenes/marcaAgua/nuevo.jpg',
    'posicion'     => 7,
    'calidad'      => 100
));

Los parámetros:
Se envía como parámetro un arreglo que contiene la información necesaria para generar la imágen con “marca de agua”.
imgOriginal” = Ruta/Nombre de la imágen que será marcada
imgMarcaAgua” = Ruta/Nombre de la imágen que hará de marca de agua
imgNueva” = Ruta/Nombre de la imágen resultante
posicion = Parámetro opcional. Posición de la marca de agua sobre la imágen original (1-7).
Los valores que puede tomar son:
1 = Marca de agua centrada sobre la imágen original (valor por defecto).
2 = Marca de agua sobre la esquina superior izquierda en la imágen original.
3 = Marca de agua sobre la esquina superior derecha en la imágen original.
4 = Marca de agua en el centro superior sobre la imágen original.
5 = Marca de agua sobre la esquina inferior izquierda en la imágen original.
6 = Marca de agua sobre la esquina inferior derecha en la imágen original.
7 = Marca de agua en el centro inferior sobre la imágen original.

Por último el parámetro “calidad”. También es opcional, y por defecto toma el valor 100 (1 – 100).

En el ejemplo se pueden ver las diferentes posiciones que toma la imágen “marca de agua” sobre la imágen original.
En la imágen 1 el parámetro “posición” lleva el valor 2, en la imágen 2 lleva el valor 6, y en la imágen 3 lleva el valor 1 (valor por defecto).

Finalmente, imprimimos la imágen resultante (imprimimos la variable $img, que invoca al método “__toString()” de la clase ImgMarcaAgua).

echo "<img src='{$img}'>";

2 – Resize

Invocamos al método estático “redimensionar()” de la clase ImagenFachada, enviándole los parámetros necesarios para la imágen y almacenamos el resultado en una variable ($img):

$img = ImagenFachada::redimensionar(array(
    'imgOriginal' => 'imagenes/resize/battlestar_galactica.jpg',
    'imgNueva'    => 'imagenes/resize/resize.jpg',
    'ancho'       => 150,
    'alto'        => 150,
    'tipoResize'  => 1,
    'calidad'     => 100
));

Los parámetros:
Se envía como parámetro un arreglo que contiene la información necesaria para redimensionar la imágen.
imgOriginal” = Ruta/Nombre de la imágen que será redimensionada.
imgNueva” = Ruta/Nombre de la imágen resultante.
ancho” = Ancho deseado para la imágen.
alto” = Altura deseado para la imágen.
tipoResize” = Parámetro Opcional. Determina el tipo de redimensión (1-2). Valor por defecto = 1.
1 = Redimensiona la imágen manteniendo la relación de aspecto, es decir teniendo en cuenta el ancho y el alto originales.
2 = Redimensiona la imágen sin mantener la relación de aspecto, es decir se respeta el ancho y el alto enviados como parámetros. Por ej: envío 150 x 100, es eso lo que obtendré.
calidad” = Parámetro opcional. Calidad de la imágen redimensionada resultante (1 -100). Valor por defecto 100.

En el ejemplo se ven las imágenes redimensionadas de las dos maneras junto con la imágen original.

Finalmente, imprimimos la imágen resultante (imprimimos la variable $img, que invoca al método “__toString()” de la clase ImgResize).

echo "<img src='{$img}'>";

Ejemplo | Código Fuente

Entradas Aleatorias

¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.

Comentarios

No hay comentarios todavía.

Deja un Comentario

(requerido)

(requerido)