wp_image_matches_ratio()WP 4.6.0

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

No Hooks.

Return

true|false. True if aspect ratios match within 1px. False if not.

Usage

wp_image_matches_ratio( $source_width, $source_height, $target_width, $target_height );
$source_width(int) (required)
Width of the first image in pixels.
$source_height(int) (required)
Height of the first image in pixels.
$target_width(int) (required)
Width of the second image in pixels.
$target_height(int) (required)
Height of the second image in pixels.

Changelog

Since 4.6.0 Introduced.

wp_image_matches_ratio() code WP 6.5.2

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;
}