phpThumb es un desarrollo en php que ya tiene sus años pero que no por eso ha dejado nunca de ser útil. Básicamente es la la máxima sencillez llevada al tratamiento de imágenes. ¿Y como hace eso? pues permitiéndote tratar las imágenes por parametros en la url.
phpThumb se instala en cualquier directorio de tu proyecto, al que tienes que permitir acceso. A partir de ahí, y habiendo vigilado los típicos temas de permisos y ubicación de las carpetas ya podemos tratar directamente cualquier imágen en la propia llamada a la misma en nuestro html.
Para hacerse una idea. La librería nos permite tratar con parametros por get cosas como:
- Tamaño y rotación de las imagenes
- Transparencias y marcas de agua
- Cambios de formato de imágen
- Efectos complejos ( enfoque, brillo, sombras, tonos sepia, etc…)
- Redondeado de los bordes e imágenes de patron para cortar un fragmento de la imágen
- Protección de las imágenes (vigilando que son cargadas desde tu dominio y no desde otros)
- etc…
No pongo ejemplos puesto que al visitar la página de demostración el uso queda bastante claro
Y esto no acaba aquí puesto que algunos de estos efectos pueden ser pesados de cargar, la librería ya cuenta con un sistema de caché de imágenes que nos permite usarla directamente en el frontend de nuestras páginas.
Como todo, tiene pegas, pero no son muy pesadas y de cierta forma pueden salvarse:
- Usandola haremos que todas nuestras imágenes de contenido pasen por un archivo php lo cual es siempre más pesado que una llamada sencilla
- Además, esto hace que para llamar a la imágen en realidad pongamos una dirección PHP con parametros, algo que es mucho menos natural que una imágen real.
De estos dos puntos, al menos el segundo puede salvarse sin demasiado problema: usando mod-rewrite sobre el nombre de la imágen. Un ejemplo real:
http://www.sportinca.com/mrthumb/elclub_200.jpg
Es en realidad una imágen tratada con phpthumb. Donde el 200 nos indica el width de la imágen y en la carpeta la opción de usar /mrthumb/ o /mthumb/ (sin la r) nos permite escoger entre esquinas redondeadas o normales.
Las sentencias modRewrite para conseguirlo fueron:
RewriteRule ^thumb(.*)/(.*)_(.*)\.(.*)$ phpthumb/phpThumb.php?src=http://www.sportinca.com/images/fotos/$2.$4&w=$3&ra=$1
RewriteRule ^rthumb(.*)/(.*)_(.*)\.(.*)$ phpthumb/phpThumb.php?src=http://www.sportinca.com/images/fotos/$2.$4&w=$3&ra=$1&bg=FFFFFF&fltr[]=ric|10|10 [L]
RewriteRule ^mthumb(.*)/(.*)_(.*)\.(.*)$ phpthumb/phpThumb.php?src=http://www.sportinca.com/images/fotos/$2.$4&w=$3&ra=$1&fltr[]=wmi|http://www.sportinca.com/images/watermark.png|BR [L]
RewriteRule ^mrthumb(.*)/(.*)_(.*)\.(.*)$ phpthumb/phpThumb.php?src=http://www.sportinca.com/images/fotos/$2.$4&w=$3&ra=$1&fltr[]=wmi|http://www.sportinca.com/images/watermark.png|BR&bg=FFFFFF&fltr[]=ric|10|10 [L]
Como punto intermedio, la clase también admite que indiquemos los parámetros de una forma un poco más amigable que por get. El resultado sigue siendo una url compleja pero tiene más sentido, sobretodo para buscadores. Para conseguir estas urls lo que hacemos es llamar a phpThumb.php y a partir de ahi usar el carácter «;» para separar variables que serán identificadas por la forma de escribirse.
Un ejemplo: Llamamos a la imagen «/images/fotos/elclub.jpg» con esquinas redondeadas con un radio de 5px un ancho de 300px y un alto de 200px…
http://www.sportinca.com/phpthumb/phpThumb.php/fltr%5B%5D=ric|5|5;300x200;/images/fotos/elclub.jpg