如何在PHP调整 JPEG 图像的大小?
为什么我们需要调整图像大小?
在网站中,我们通常需要缩放图像以适合特定部分。有时,有必要缩小任何随机大小的图像以适合封面照片部分或个人资料图片部分。此外,我们需要显示更大图像的缩略图。在这些情况下,始终手动调整图像大小是不可行的。
解决上述问题的一种方法是使用以下方法,我们只需要在 HTML 中的图像标签上设置宽度和高度属性。
这样做的问题是整个图像是从服务器下载的,并且在浏览器中以缩小的尺寸显示。这意味着需要相同数量的带宽来以较小的尺寸显示图像,这在原始尺寸的情况下是需要的。
在服务器端使用PHP调整图像大小:我们以后将使用PHP来减小图像尺寸并进行渲染,以便仅在客户端下载较小的尺寸而不是原始图像。为了实现这一点,我们将使用PHP的imagecopyresampled()函数。
imagecopyresampled()函数用于通过重采样复制和调整图像或图像的一部分。
句法:
bool imagecopyresampled( resource $dst_image, resource $src_image,
int $dst_x, int $dst_y, int $src_x, int $src_y,
int $dst_w, int $dst_h, int $src_w, int $src_h )
参数:该函数从宽度$ src_w和在位置($从src_x,$ src_y)高度$ src_h的$和src_image接受一个矩形区域,并将其放置在宽度$ dst_w和高度$ dst_h的$ dst_image和的矩形区域在位置($ dst_x, $dst_y) 。
示例:此示例使用 imagecopyresampled()函数来调整图像大小。
$ratio_orig) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
// Resampling the image
$image_p = imagecreatetruecolor($width, $height);
$image = imagecreatefromjpeg($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0,
$width, $height, $width_orig, $height_orig);
// Display of output image
imagejpeg($image_p, null, 100);
?>
输出:
- 原图:
- 输出图像: