Summery Summery

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

Syntax Syntax

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

Parameters Parameters


(Required) Width of the first image in pixels.


(Required) Height of the first image in pixels.


(Required) Width of the second image in pixels.


(Required) Height of the second image in pixels.

Return Return

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

Source Source

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;


Changelog Changelog

Version Description
4.6.0 Introduced.


Leave a Reply