引言
准备工作
使用GD库缩小图片尺寸
1. 获取图片信息
function get_image_size($image_path) {
return getimagesize($image_path);
}
$image_info = get_image_size('path/to/your/image.jpg');
2. 创建新的图片资源
function create_new_image($image_info) {
switch ($image_info[2]) {
case IMAGETYPE_JPEG:
return imagecreatefromjpeg($image_info[0]);
case IMAGETYPE_PNG:
return imagecreatefrompng($image_info[0]);
case IMAGETYPE_GIF:
return imagecreatefromgif($image_info[0]);
default:
return false;
}
}
$new_image = create_new_image($image_info);
3. 计算新的尺寸
function calculate_new_dimensions($width, $height, $new_width) {
$ratio = $height / $width;
return array($new_width, (int)($new_width * $ratio));
}
$new_dimensions = calculate_new_dimensions($image_info[0], $image_info[1], 100); // 将图片缩小到100像素宽
4. 调整图片尺寸
使用imagecopyresampled()函数将原图复制到新的尺寸。
function resize_image($source_image, $new_width, $new_height) {
$new_image = imagecreatetruecolor($new_width, $new_height);
imagecopyresampled($new_image, $source_image, 0, 0, 0, 0, $new_width, $new_height, $image_info[0], $image_info[1]);
return $new_image;
}
$ resized_image = resize_image($new_image, $new_dimensions[0], $new_dimensions[1]);
5. 输出或保存图片
function output_image($image, $image_path) {
switch ($image_info[2]) {
case IMAGETYPE_JPEG:
imagejpeg($image, $image_path);
break;
case IMAGETYPE_PNG:
imagepng($image, $image_path);
break;
case IMAGETYPE_GIF:
imagegif($image, $image_path);
break;
}
imagedestroy($image);
}
output_image($resized_image, 'path/to/your/resized_image.jpg');