1. 图片缩放的基本原理
- 等比例缩放:保持图片的宽高比,根据需要调整图片的宽度和高度。
- 非等比例缩放:不保持图片的宽高比,直接指定图片的宽度和高度。
2. PHP图片处理函数
2.1 创建图片资源
imagecreatetruecolor(width, height); // 创建一个真彩图象
imagecreatefromgif(filename); // 从GIF文件创建一个图像资源
imagecreatefrompng(filename); // 从PNG文件创建一个图像资源
imagecreatefromjpeg(filename); // 从JPEG文件创建一个图像资源
2.2 获取图片属性
imagesx(resource); // 返回图像资源宽度
imagesy(resource); // 返回图像资源高度
getimagesize(filename); // 获取图像宽度和高度
2.3 缩放图片
imagecopyresampled(dst_image, src_image, dst_x, dst_y, src_x, src_y, dst_w, dst_h, src_w, src_h);
其中,dst_image
和src_image
分别是目标图像资源和源图像资源,(dst_x, dst_y)
和(src_x, src_y)
分别是目标图像和源图像的起始坐标,(dst_w, dst_h)
和(src_w, src_h)
分别是目标图像和源图像的尺寸。
3. PHP高清图片缩放示例
<?php
// 图片路径
$sourceImage = 'upload/1.jpeg';
// 缩放后的图片路径
$destImage = 'upload/thumb.jpg';
// 缩放后的宽度
$width = 120;
// 缩放后的高度
$height = 120;
// 获取原始图片的宽度和高度
list($widthOrig, $heightOrig) = getimagesize($sourceImage);
// 计算缩放后的尺寸
if ($widthOrig < $heightOrig) {
$height = ($height / $heightOrig) * $widthOrig;
} else {
$width = ($width / $widthOrig) * $heightOrig;
}
// 创建画布
$dstImage = imagecreatetruecolor($width, $height);
// 获取原始图像资源
$srcImage = imagecreatefromjpeg($sourceImage);
// 开始缩放图像
imagecopyresampled($dstImage, $srcImage, 0, 0, 0, 0, $width, $height, $widthOrig, $heightOrig);
// 存储缩放后的图片
imagejpeg($dstImage, $destImage);
// 销毁图像资源
imagedestroy($srcImage);
imagedestroy($dstImage);
?>