function image_scale_and_crop

Scales an image to the exact width and height given.

This function achieves the target aspect ratio by cropping the original image equally on both sides, or equally on the top and bottom. This function is useful to create uniform sized avatars from larger images.

The resulting image always has the exact target dimensions.

Parameters

object $image: An image object returned by image_load().

int $width: The target width, in pixels.

int $height: The target height, in pixels.

Return value

bool TRUE on success, FALSE on failure.

See also

image_load()

image_resize()

image_crop()

Related topics

2 calls to image_scale_and_crop()
image_scale_and_crop_effect in drupal/core/modules/image/image.effects.inc
Image effect callback; Scale and crop an image resource.
ToolkitTest::testScaleAndCrop in drupal/core/modules/system/lib/Drupal/system/Tests/Image/ToolkitTest.php
Test the image_scale_and_crop() function.
1 string reference to 'image_scale_and_crop'
ImageAdminStylesTest::testEditEffect in drupal/core/modules/image/lib/Drupal/image/Tests/ImageAdminStylesTest.php
Verifies that editing an image effect does not cause it to be duplicated.

File

drupal/core/includes/image.inc, line 103
API for manipulating images.

Code

function image_scale_and_crop($image, $width, $height) {
  $scale = max($width / $image->info['width'], $height / $image->info['height']);
  $x = ($image->info['width'] * $scale - $width) / 2;
  $y = ($image->info['height'] * $scale - $height) / 2;
  if (image_resize($image, $image->info['width'] * $scale, $image->info['height'] * $scale)) {
    return image_crop($image, $x, $y, $width, $height);
  }
  return FALSE;
}