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