[wp-trac] [WordPress Trac] #34384: No way of preventing image_get_intermediate_size from returning cropped image

WordPress Trac noreply at wordpress.org
Mon Jul 18 02:13:46 UTC 2016

#34384: No way of preventing image_get_intermediate_size from returning cropped
 Reporter:  pputzer                          |       Owner:  joemcgill
     Type:  defect (bug)                     |      Status:  closed
 Priority:  normal                           |   Milestone:  4.6
Component:  Media                            |     Version:  3.0
 Severity:  normal                           |  Resolution:  fixed
 Keywords:  has-patch has-unit-tests commit  |     Focuses:
Changes (by joemcgill):

 * status:  accepted => closed
 * resolution:   => fixed


 In [changeset:"38086"]:
 #!CommitTicketReference repository="" revision="38086"
 Media: Prevent `image_get_intermediate_size()` from returning cropped

 When `$size` is passed to `image_get_intermediate_size()` as an array of
 and height values and an exact image size matching those values isn't
 the function loops through the available attachment sizes and returns the
 smallest image larger than the requested dimensions with the same aspect

 The aspect ratio check is skipped for the 'thumbnail' size to provide a
 for small sizes when no other image option is available. This resulted in
 a poor
 selection when the size requested was smaller than the 'thumbnail'
 but a larger size matching the requested ratio existed.

 This refactors the internals of `image_get_intermediate_size()` to ensure
 'thumbnail' size is only returned as a fallback to small sizes once all
 options have been considered, and makes the control flow easier to follow.

 This also introduces a new helper function, `wp_image_matches_ratio()` for
 testing whether the aspect ratios of two sets of dimensions match. This
 is also now used in `wp_calculate_image_srcset()` during the selection

 Props flixos, joemcgill.
 Fixes #34384, #34980.

Ticket URL: <https://core.trac.wordpress.org/ticket/34384#comment:17>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform

More information about the wp-trac mailing list