下面是如何实现 PHP 图片等比例缩放的完整攻略。
1. 什么是等比例缩放
等比例缩放指的是在不改变图像原来的比例(宽高比)的前提下,将整张图片按一定比例缩小或放大。
2. 如何实现等比例缩放
在 PHP 中实现图片等比例缩放,可以通过 GD 库提供的函数来完成。 GD 库是一个在 PHP 环境下用来处理图形的开源库,也是 PHP 支持的常用扩展之一。
具体步骤如下:
(1)打开需要缩放的图片
$sourceImg = imagecreatefromjpeg('source.jpg');
(2)获取原始图片的宽度和高度
$sourceWidth = imagesx($sourceImg);
$sourceHeight = imagesy($sourceImg);
(3)设置新图片的尺寸
$maxWidth = 800; // 新图片的最大宽度
$maxHeight = 600; // 新图片的最大高度
// 计算新图片的大小
if ($sourceWidth / $maxWidth > $sourceHeight / $maxHeight) {
$newWidth = $maxWidth;
$newHeight = $sourceHeight * $newWidth / $sourceWidth;
} else {
$newHeight = $maxHeight;
$newWidth = $sourceWidth * $newHeight / $sourceHeight;
}
(4)创建一张新的空白图片
$newImg = imagecreatetruecolor($newWidth, $newHeight);
(5)将原图缩放并复制到新图片中
imagecopyresampled($newImg, $sourceImg, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);
(6)保存新图片
imagejpeg($newImg, 'new.jpg');
3. 示例说明
下面是两个示例说明。
示例一
需要缩放的图片为 source.jpg
,宽度为 1200 像素,高度为 800 像素,需要将其等比例缩放成最大宽度为 800 像素,最大高度为 600 像素的新图片。
$sourceImg = imagecreatefromjpeg('source.jpg');
$sourceWidth = imagesx($sourceImg);
$sourceHeight = imagesy($sourceImg);
$maxWidth = 800;
$maxHeight = 600;
if ($sourceWidth / $maxWidth > $sourceHeight / $maxHeight) {
$newWidth = $maxWidth;
$newHeight = $sourceHeight * $newWidth / $sourceWidth;
} else {
$newHeight = $maxHeight;
$newWidth = $sourceWidth * $newHeight / $sourceHeight;
}
$newImg = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImg, $sourceImg, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);
imagejpeg($newImg, 'new.jpg');
示例二
需要缩放的图片为 source.jpg
,宽度为 800 像素,高度为 1200 像素,需要将其等比例缩放成最大宽度为 800 像素,最大高度为 600 像素的新图片。
$sourceImg = imagecreatefromjpeg('source.jpg');
$sourceWidth = imagesx($sourceImg);
$sourceHeight = imagesy($sourceImg);
$maxWidth = 800;
$maxHeight = 600;
if ($sourceWidth / $maxWidth > $sourceHeight / $maxHeight) {
$newWidth = $maxWidth;
$newHeight = $sourceHeight * $newWidth / $sourceWidth;
} else {
$newHeight = $maxHeight;
$newWidth = $sourceWidth * $newHeight / $sourceHeight;
}
$newImg = imagecreatetruecolor($newWidth, $newHeight);
imagecopyresampled($newImg, $sourceImg, 0, 0, 0, 0, $newWidth, $newHeight, $sourceWidth, $sourceHeight);
imagejpeg($newImg, 'new.jpg');
以上就是如何实现 PHP 图片等比例缩放的完整攻略,希望可以帮助到你。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何实现php图片等比例缩放 - Python技术站