Crear imagenes miniaturas con CodeIgniter


El Framework  en PHP llamado   CodeIgniter el cual utilizo al momento de crear aplicaciones en PHP, trae un conjunto de librerías y entre ellas esta una para la manipulación de imágenes.

El objetivo de este ejemplo es mostrar como utilizando el metodo image_lib->resize() de la librería image_lib podemos crear imagenes miniaturas a partir de cualquier imagen que se encuentre en nuestro servidor.

La función en el código de ejemplo debe ser colocada en cualquier parte de un controlador de CodeIgniter para cargar la libreria image_lib, luego le asignamos una serie de parámetros de configuración en donde especificamos como queremos dimensionar la imagen miniatura, como se va a llamar la imagen, etc.

/**
 *
 * @param $imagen: ruta de la imagen en el servidor
 * @param $nombre_archivo: nombre del archivo
 * @param $ancho: ancho para la imagen a generar
 * @param $alto: alto de la imagen a generar
 * @return void
 */
 function crear_thumbnail($imagen, $nombre_archivo, $ancho, $alto)
 {
 // cargar libreria de imagen
 $this->load->library('image_lib');

 // dividir el nombre del archivo y tomar el nombre y extension del archivo
 $nombre_archivo = split("[.]", $nombre_archivo);

 // crear valores de configuracion para cargar la libreria
 $config['image_library'] = 'GD2';   // libreria a utilizar
 $config['source_image'] = $imagen;  // imagen fuente, aqui se debe colocar la ruta completa del archivo en el servidor tomando como referencia la raíz del sitio (ejemplo ./uploads/)
 $config['width'] = $ancho;          // ancho de la imagen a generar
 $config['height'] = $alto;          // alto de la imagen a generar
 $config['create_thumb'] = TRUE;     // especificar que se quiere generar un thumbnail
 $config['new_image'] = './uploads/home_party/thumbnails/'.$nombre_archivo[0].'_'.$ancho.'x'.$alto.'.'.$nombre_archivo[1];  // nombre y ubicacion de la imagen miniatura
 $this->image_lib->initialize($config);  // asignar parametros de configuracion a la libreria

 $this->image_lib->resize();         // crear thumbnail
 }

Para mas información de la libreria puedes consultar la guia de usuario de CodeIgniter.

,

  1. #1 by tiendas virtuales on January 28, 2010 - 6:07 am

    Genial! sabia que tenia que haber algo ya “hecho” en codeigniter para crear thumbnails. La verdad es que desde que he descubierto CI estoy como niño con zapatos nuevos….

    Para usarlo me imagino que la cosa seria , si por ejemplo queremos crear el thumb al cargar la imagen, llamar a la imagen mediante otra funcion (alojada tb en el controllador, no?) que checkée si ya existe el thumb y si no, llamaria a esta funcion, no?

  2. #2 by Psycho on February 3, 2010 - 11:20 am

    @tiendas virtuales: la imagen ya debe de estar en el servidor, el parámetro $imagen debe tener la ruta completa de la imagen.
    Por ejemplo: /upload/images/archivo.jpg.
    La carpeta upload debe de estar en la raíz de tu sitio web

(will not be published)