image_scale

Versions
4.6 – 6
image_scale($source, $destination, $width, $height)
7
image_scale(stdClass $image, $width = NULL, $height = NULL, $upscale = FALSE)

Scales an image to the given width and height while maintaining aspect ratio.

Parameters

$source The filepath of the source image

$destination The file path of the destination image

$width The target width

$height The target height

Return value

True or FALSE, based on success

▾ 2 functions call image_scale()

user_validate_picture in modules/user/user.module
_upload_image in modules/upload/upload.module
Check an upload, if it is an image, make sure it fits within the maximum dimensions allowed.

Code

includes/image.inc, line 115

<?php
function image_scale($source, $destination, $width, $height) {
  $info = image_get_info($source);

  // don't scale up
  if ($width >= $info['width'] && $height >= $info['height']) {
    return FALSE;
  }

  $aspect = $info['height'] / $info['width'];
  if ($aspect < $height / $width) {
    $width = (int)min($width, $info['width']);
    $height = (int)round($width * $aspect);
  }
  else {
    $height = (int)min($height, $info['height']);
    $width = (int)round($height / $aspect);
  }

  return image_toolkit_invoke('resize', array($source, $destination, $width, $height));
}
?>
Login or register to post comments
 
 

All source code and documentation on this site is released under the terms of the GNU General Public License, version 2 and later. Drupal is a registered trademark of Dries Buytaert.