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

Efectos hover con CSS

Efectos hover con CSS

API REST en CodeIgniter

API REST en CodeIgniter

Algunos artículos que te pueden interesar

Login Social en Twitter con PHP-CodeIgniter y la Twitteroauth

Login Social en Twitter con PHP-CodeIgniter y la Twitteroauth

Andrés Cruz 23-02-2017

¿Cómo obtener por separado el canal RGB de una imagen con HTML5?

¿Cómo obtener por separado el canal RGB de una imagen con HTML5?

En este artículo veremos como obtener los tres canales RGB de una imagen y operarlos por separados.

Andrés Cruz 15-05-2014

Login Social con la SDK de Facebook con PHP-CodeIgniter

Login Social con la SDK de Facebook con PHP-CodeIgniter

Se explica cómo instalar la SDK PHP de Facebook en CodeIgniter, crear una aplicación en la Graph API de Facebook y realizar el login social con Facebook.

Andrés Cruz 06-03-2017