WordPress Snippets at WPcustoms

Sharpen resized images

Uploaded images are resized (thumbnail\medium\large) by default and will look a bit blurry due to the pixel compression. This function adds a sharpen filter to the generated images.


/**
 * Snippet Name: Sharpen resized images
 * Snippet URL: https://wpcustoms.net/snippets/sharpen-resized-images/
 */
  function wpc_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', __('Could not read image size'), $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', 'wpc_sharpen_resized_files',900);