DesarrolloLibre

Desarrollo Web, Android, juegos y mucho más

Categorias
21-05-2014

En este artículo veremos cómo redimensionar imágenes con Codeigniter; este artículo representa una extensión del artículo pasado titulado: Upload de archivos con Codeigniter, en el mismo explicamos como subir archivos (uploads) utilizando la librería upload provista por CodeIgniter, obviamente no se puede redimensionar un .doc, .txt, etc, pero si un .png, .jpg, .gif u otros formatos de compresión de imágenes; veamos como funciona la librería de image_lib la cual permite redimensionar imágenes.

Formas de redimensionar imágenes con CodeIgniter

Hay dos casos posibles: podemos redimensionar imágenes justo después de hacer el upload (carga de imágenes) o podemos redimensionar a cualquier imagen que se encuentre alojada en el servidor por distintos medios, para ambos casos el proceso es el mismo, solo varía de donde obtendremos la data ($data):

Pasaremos por alto temas que ya fueron tratados en el artículo pasado como:

Código completo para redimensionar una imagen

        $CI = & get_instance();
        $CI->load->library('image_lib');

        $config['image_library'] = 'gd2';
        $config['source_image'] = $data['full_path'];
        $config['new_image'] = 'uploads/';
        $config['maintain_ratio'] = TRUE;
        $config['create_thumb'] = FALSE;
        $config['width'] = 800;
        $config['height'] = 800;

        $CI->image_lib->initialize($config);

        if (!$CI->image_lib->resize()) {
            echo $this->image_lib->display_errors('', '');
        }

Analizando el código anterior...

En este ejemplo estamos suponiendo que el redimensionamiento de la imagen se realiza luego de que se ha cargado una imagen en el servidor; por lo tanto se tiene la ventaja de que CodeIgniter puede dar datos sobre el upload o carga de la imagen:

Esos son algunos de los datos que podemos obtener llamando al siguiente método:

$data= $this->upload->data();

Cargando la librería de manipulación de imágenes de CodeIgniter

1
        $CI = & get_instance();

Lo primero que hacemos en el código anterior es llamar al método get_instance(); el método permite cargar recursos nativos de CodeIgniter; en este caso se cargará la librería que permitirá redimensionar las imágenes.

2

Ahora si es posible cargar la librería de manipulación de imágenes:

$CI->load->library('image_lib');

Preferencias del redimensionamiento de la imagen

3

El array $config indica las preferencias para la imagen a manipular (en este caso, a redimensionar); las cuales pueden ser:

Preferencia Valor por defecto Opciones Descripción
image_library GD2 GD, GD2, ImageMagick, NetPBM Se establece la librería de la imagen a utilizar.
source_image None None La ruta en donde se encuentra la imagen incluyendo el nombre completo de la imagen (con su extensión).
new_image None None La ruta de la imagen generada producto del redimensionamiento. La misma representa la ruta destino en donde se almacenará la imagen.
width None None Se establece el ancho de la imagen.
height None None Se establece el alto de la imagen.
maintain_ratio TRUE TRUE/FALSE (boolean) Especifica si se mantiene las proporciones (TRUE) o no (FALSE) al momento de redimensionar la imagen.
create_thumb FALSE TRUE/FALSE (boolean) Especifica si se creará un thumbnail (TRUE) o imagen en miniatura.

Estos son algunos de las preferencias de la imagen, hay otros como la calidad de la imagen, rotación y corte; los demas los puedes encontrar en la documentación oficial de CodeIgniter; click aquí.

4

Luego de que hayamos construido el array de configuración $config, inicializamos la librería con:

$CI->image_lib->initialize($config);

Redimensionando la imagen

5

Ahora si es posible redimensionar la imagen; la siguiente función devuelve un booleano, como podrás imaginar:

if (!$CI->image_lib->resize()) {
    echo $this->image_lib->display_errors();
}

Publicidad

Give me for a beer!

Algunos recursos que te pueden interesar

CompressNow: optimiza tus imágnes GIF, JPG y PNG.

CompressNow: optimiza tus imágnes GIF, JPG y PNG.

API REST en CodeIgniter

API REST en CodeIgniter

Efectos hover con CSS

Efectos hover con CSS

Algunos artículos que te pueden interesar

Cargar de archivos con Codeigniter y Dropzone

Cargar de archivos con Codeigniter y Dropzone

Se explica cómo realizar la carga de archivos en CodeIgniter empleando el plugin Dropzone, manejo de eventos, errores y parámetros de configuración.

Andrés Cruz 21-08-2017

¿Cómo agregar el efecto Blur en imágenes en múltiples navegadores?

¿Cómo agregar el efecto Blur en imágenes en múltiples navegadores?

¿Cómo agregar el efecto Blur en imágenes en múltiples navegadores?

Andrés Cruz 05-06-2014

Cargas asíncronas de imágenes con jQuery en una web

Cargas asíncronas de imágenes con jQuery en una web

Se explica como emplear imágenes pequeñas en la definición del sitio web y luego -al cargar por completo la página web- cargar las imágenes con mayor resolución asíncronamente con jQuery.

Andrés Cruz 11-04-2016