Cómo mejorar automáticamente imágenes JPG subidas a WordPress

A veces no nos queda más remedio que subir a nuestro WordPress las imágenes que tenemos, no las que nos gustaría tener, pero ¿qué pasa con esa imagen que salió desenfocada, sin contraste? ¿podemos arreglarla?

Desafortunadamente, el editor de imágenes incluido en WordPress no permite hacer este tipo de mejoras, solo nos deja rotar, recortar y poco más.

Pero sí que podemos forzar la mejora las imágenes en JPG que subamos, consiguiendo un mayor y mejor enfoque de las mismas.

Mejorando los JPG con un código que puedas personalizar

Mi consejo es que añadas este código a tu plugin de personalizaciones, o al archivo functions.php del tema activo para mejorar las imágenes en JPG que subas a tu WordPress.

function ajx_sharpen_resized_files( $resized_file ) {

    $image = wp_load_image( $resized_file );
    if ( !is_resource( $image ) )
        return new WP_Error( 'error_loading_image', $image, $file );

    $size = @getimagesize( $resized_file );
    if ( !$size )
        return new WP_Error('invalid_image', __('No se pudo determinar el tamaño del archivo'), $file);
    list($orig_w, $orig_h, $orig_type) = $size;

    switch ( $orig_type ) {
        case IMAGETYPE_JPEG:
            $matrix = array(
                array(-1, -1, -1),
                array(-1, 16, -1),
                array(-1, -1, -1),
            );

            $divisor = array_sum(array_map('array_sum', $matrix));
            $offset = 0; 
            imageconvolution($image, $matrix, $divisor, $offset);
            imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));
            break;
        case IMAGETYPE_PNG:
            return $resized_file;
        case IMAGETYPE_GIF:
            return $resized_file;
    }

    return $resized_file;
}   

add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);

Con estos ajustes conseguirás que una imagen así…

Pase a verse así…

Como puedes comprobar, mucho más detalle, enfoque y contraste.

Mejorando la calidad inicial

Por si no lo sabías, WordPress reduce la calidad inicial de los JPG al subirlos, pero puedes evitarlo, simplemente cambiando la línea siguiente del código anterior:

imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 90, 'edit_image' ));

Por esta otra:

imagejpeg($image, $resized_file,apply_filters( 'jpeg_quality', 100, 'edit_image' ));

Otra posibilidad es simplemente añadir este filtro a tu plugin de funciones o functions.php:

/* Mejorar calidad de JPG de WordPress */
add_filter('jpeg_quality', function($quality) { return 100; } );

Mejorando los JPG con un plugin

También, si lo prefieres, puedes aplicar la mejora a los JPG con el plugin Sharpen Resized Images que, aunque hace tiempo que no se actualiza, sigue funcionando.

No tiene ajustes, solo tienes que instalarlo y activarlo.

Notas importantes

Algunos detalles sobre este truco:

  • Solo funciona con imágenes en JPG.
  • Tanto si usas el código como el plugin solo funciona para las imágenes nuevas que subas a partir de activarlo.
  • Si quieres aplicarlo a las imágenes ya subidas tendrás que regenerar miniaturas tras activarlo, con plugin, o desde WP-CLI.
VALORA Y COMPARTE ESTE ARTÍCULO PARA MEJORAR LA CALIDAD DEL BLOG…
(11 votos, promedio: 5)

¿Te gustó este artículo? ¡Ni te imaginas lo que te estás perdiendo en YouTube!

6 comentarios en “Cómo mejorar automáticamente imágenes JPG subidas a WordPress”

  1. Muchas gracias! Una funcionalidad muy interesante. Sobre todo para blogs donde la imagen cobra gran importancia como podría ser el sector de los fotógrafos.

  2. Que tal Fernando, he implementado el código con un valor 100, pero me arroja error: Out of memory (allocated 104071168) (tried to allocate 212 bytes) al momento de subir imágenes a través de la biblioteca de medios, y si lo subo a través del editor sale un error HTTP, y el error lo arroja justamente una de las líneas del código.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

 

Ir arriba Ir al contenido