[wp-trac] [WordPress Trac] #34980: image_get_intermediate_size() sometimes skips image sizes
WordPress Trac
noreply at wordpress.org
Mon Jul 18 02:13:47 UTC 2016
#34980: image_get_intermediate_size() sometimes skips image sizes
----------------------------------------+------------------------
Reporter: flixos90 | Owner: joemcgill
Type: defect (bug) | Status: closed
Priority: normal | Milestone: 4.6
Component: Media | Version: 2.5
Severity: normal | Resolution: fixed
Keywords: has-patch needs-unit-tests | Focuses:
----------------------------------------+------------------------
Changes (by joemcgill):
* status: reviewing => closed
* resolution: => fixed
Comment:
In [changeset:"38086"]:
{{{
#!CommitTicketReference repository="" revision="38086"
Media: Prevent `image_get_intermediate_size()` from returning cropped
images.
When `$size` is passed to `image_get_intermediate_size()` as an array of
width
and height values and an exact image size matching those values isn't
available,
the function loops through the available attachment sizes and returns the
smallest image larger than the requested dimensions with the same aspect
ratio.
The aspect ratio check is skipped for the 'thumbnail' size to provide a
fallback
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'
dimensions
but a larger size matching the requested ratio existed.
This refactors the internals of `image_get_intermediate_size()` to ensure
the
'thumbnail' size is only returned as a fallback to small sizes once all
other
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
function
is also now used in `wp_calculate_image_srcset()` during the selection
process.
Props flixos, joemcgill.
Fixes #34384, #34980.
}}}
--
Ticket URL: <https://core.trac.wordpress.org/ticket/34980#comment:6>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list