PHP:¿Cómo creo thumbnails de mis imágenes?
De Foros del Web
Con las funciones de imagen de la librería GD en esta simple función.
Código PHP:
function thumbnail($file,$dir,$ancho=100,$alto=100,$gif_support=false) { if(!file_exists($file)){ return false; } if(!is_dir($dir)){ return false; } $final = (int) strlen($file) - 4; $nombre = strtolower(substr($file,0,$final)); $ext = strtolower(substr($file,-4,4)); $nombre = $nombre.$ext; $mini = $dir."/mini_".$nombre; if($ext==".jpg" || $ext==".jpeg"){ $origen = imageCreateFromJPEG($file); $imgAncho= imageSx($origen); $imgAlto = imageSy($origen); $imagen = imageCreate($ancho,$alto); ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto); imageJPEG($imagen,$mini); }else if($ext==".png"){ $origen = imageCreateFromPNG($file); $imgAncho= imageSx($origen); $imgAlto = imageSy($origen); $imagen = imageCreate($ancho,$alto); ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto); imagePNG($imagen,$mini); }else if(($gif_support==true) && ($ext==".gif")){ $origen = imageCreateFromGIF($file); $imgAncho= imageSx($origen); $imgAlto = imageSy($origen); $imagen = imageCreate($ancho,$alto); ImageCopyResized($imagen,$origen,0,0,0,0,$ancho,$alto,$imgAncho,$imgAlto); imageGIF($imagen,$mini); }else{ return false; } return true; }
¿Cómo usarla?
Sencillo, le pasas a la función el nombre del archivo y el directorio en que quieres que queden creadas las thumbnails. En forma de opción esta que le pases el alto y ancho que por defecto es 100 de ancho y de alto.
También si tu librería GD soporta gifs le pasas true a la opción de gif.
Código PHP:
thumbnail( $file , $dir , [$ancho = 100] , [$alto = 100] , [$gif_support=false] );
Ejemplo de uso
Código PHP:
if(!thumbnail("imagen.png","./thumbnails",80,80)){ echo "error en creación de thumbnails"; }else{ echo "Creación exitosa"; }
Recordar que esta función crea los thumbnails en un directorio especificado.
--MSDark 23 Jul 2003
Este artículo es parte de las FAQs de PHP y el Manual de PHP.
- Indice de las FAQs: Conceptos, Configuración, Formularios, Manejo de Archivos, Integración con Bases de Datos, Sesiones, Extensiones y Librerías, Seguridad, Funciones, Clases y Objetos, Frameworks
- Recomendamos también: Guía Zend, Frameworks PHP, Aceleradores PHP
- Agregar al FAQ: PHP: Instrucciones para agregar una pregunta al FAQ de PHP
- Para preguntas sobre PHP: Foro de Php
