示例#1
0
 /**
  * Scale an image to the specified size using GD.
  */
 function image_gd_resize($source, $destination, $width, $height, $source_x = 0, $source_y = 0, $source_width = null, $source_height = null)
 {
     if (!file_exists($source)) {
         return false;
     }
     $info = ImageResize::image_get_info($source);
     if (!$info) {
         return false;
     }
     $im = ImageResize::image_gd_open($source, $info['extension']);
     if (!$im) {
         return false;
     }
     /* Get source dimensions from GD info is not passed as parameters. */
     $source_width = is_null($source_width) ? $info['width'] : $source_width;
     $source_height = is_null($source_height) ? $info['height'] : $source_height;
     $res = imageCreateTrueColor($width, $height);
     imageCopyResampled($res, $im, 0, 0, $source_x, $source_y, $width, $height, $source_width, $source_height);
     $result = ImageResize::image_gd_close($res, $destination, $info['extension']);
     imageDestroy($res);
     imageDestroy($im);
     return $result;
 }