. */ /* filter usage: add_filter('sharpen_resized_corner',function(){ return -1.2; }); add_filter('sharpen_resized_side',function(){ return -1; }); add_filter('sharpen_resized_center',function(){ return 20; }); */ function ajx_sharpen_resized_files( $resized_file ) { $image = imagecreatefromstring( file_get_contents( $resized_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(apply_filters('sharpen_resized_corner',-1.2), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1.2)), array(apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_center',20), apply_filters('sharpen_resized_side',-1)), array(apply_filters('sharpen_resized_corner',-1.2), apply_filters('sharpen_resized_side',-1), apply_filters('sharpen_resized_corner',-1.2)), ); $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; } // we don't need images in memory anymore imagedestroy( $image ); return $resized_file; } add_filter('image_make_intermediate_size', 'ajx_sharpen_resized_files',900);