wp_image_matches_ratio( int $source_width, int $source_height, int $target_width, int $target_height )

Helper function to test if aspect ratios for two images match.



(int) (Required) Width of the first image in pixels.


(int) (Required) Height of the first image in pixels.


(int) (Required) Width of the second image in pixels.


(int) (Required) Height of the second image in pixels.


(bool) True if aspect ratios match within 1px. False if not.


File: wp-includes/media.php

function wp_image_matches_ratio( $source_width, $source_height, $target_width, $target_height ) {
	 * To test for varying crops, we constrain the dimensions of the larger image
	 * to the dimensions of the smaller image and see if they match.
	if ( $source_width > $target_width ) {
		$constrained_size = wp_constrain_dimensions( $source_width, $source_height, $target_width );
		$expected_size    = array( $target_width, $target_height );
	} else {
		$constrained_size = wp_constrain_dimensions( $target_width, $target_height, $source_width );
		$expected_size    = array( $source_width, $source_height );

	// If the image dimensions are within 1px of the expected size, we consider it a match.
	$matched = ( wp_fuzzy_number_match( $constrained_size[0], $expected_size[0] ) && wp_fuzzy_number_match( $constrained_size[1], $expected_size[1] ) );

	return $matched;


Version Description
4.6.0 Introduced.

© 2003–2019 WordPress Foundation
Licensed under the GNU GPLv2+ License.