Ticket #20555: 20555.3.patch
File 20555.3.patch, 2.7 KB (added by , 13 years ago) |
---|
-
wp-admin/custom-header.php
858 858 $parent_url = $parent->guid; 859 859 $url = str_replace(basename($parent_url), basename($cropped), $parent_url); 860 860 861 $size = @getimagesize( $cropped ); 862 $image_type = ( $size ) ? $size['mime'] : 'image/jpeg'; 863 861 864 // Construct the object array 862 865 $object = array( 863 866 'ID' => $attachment_id, 864 867 'post_title' => basename($cropped), 865 868 'post_content' => $url, 866 'post_mime_type' => 'image/jpeg',869 'post_mime_type' => $image_type, 867 870 'guid' => $url, 868 871 'context' => 'custom-header' 869 872 ); -
wp-admin/includes/image.php
44 44 * @return string|WP_Error|false New filepath on success, WP_Error or false on failure. 45 45 */ 46 46 function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) { 47 if ( 0 == $src_x && 0 == $src_y && $src_w == $dst_w && $src_h == $dst_h ) 48 return ( is_numeric( $src ) ) ? get_attached_file( $src ) : $src; 49 47 50 if ( is_numeric( $src ) ) { // Handle int as attachment ID 48 51 $src_file = get_attached_file( $src ); 49 52 if ( ! file_exists( $src_file ) ) { 50 53 // If the file doesn't exist, attempt a url fopen on the src link. 51 54 // This can occur with certain file replication plugins. 52 55 $post = get_post( $src ); 56 $image_type = $post->post_mime_type; 53 57 $src = load_image_to_edit( $src, $post->post_mime_type, 'full' ); 54 58 } else { 59 $size = @getimagesize( $src_file ); 60 $image_type = ( $size ) ? $size['mime'] : ''; 55 61 $src = wp_load_image( $src_file ); 56 62 } 57 63 } else { 64 $size = @getimagesize( $src ); 65 $image_type = ( $size ) ? $size['mime'] : ''; 58 66 $src = wp_load_image( $src ); 59 67 } 60 68 … … 78 86 if ( ! $dst_file ) 79 87 $dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file ); 80 88 81 $dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file ); 89 if ( 'image/png' != $image_type ) 90 $dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file ); 82 91 83 92 // The directory containing the original file may no longer exist when 84 93 // using a replication plugin. 85 94 wp_mkdir_p( dirname( $dst_file ) ); 86 95 87 if ( imagejpeg( $dst, $dst_file, apply_filters( 'jpeg_quality', 90, 'wp_crop_image' )) )96 if ( 'image/png' == $image_type && imagepng( $dst, $dst_file ) ) 88 97 return $dst_file; 98 elseif ( imagejpeg( $dst, $dst_file, apply_filters( 'jpeg_quality', 90, 'wp_crop_image' ) ) ) 99 return $dst_file; 89 100 else 90 101 return false; 91 102 }