我目前已经实现了一段代码,允许我调整图像大小以允许我正在创建的图库中的缩略图,尽管它不太顺利。
我正在使用一些预先编写的代码来调整图像的大小,尽管我正在努力为图像提供最小195px高度和195px宽度+尽可能保持比例。
还有什么方法可以优化图像,从而改善页面加载时间?
这是我目前的代码,非常感谢任何帮助,谢谢!
function imageResize() {
$filename = $row['main'];
if (exif_imagetype($filename) == IMAGETYPE_GIF) {
$create = imagecreatefromgif;
}
if (exif_imagetype($filename) == IMAGETYPE_JPEG) {
$create = imagecreatefromjpeg;
}
if (exif_imagetype($filename) == IMAGETYPE_PNG) {
$create = imagecreatefrompng;
}
$width = 600; //These values have been tinkered with from their original values
$height = 500;
header('Content-Type: image/jpeg');
list($width_orig, $height_orig) = getimagesize($filename);
$ratio_orig = $width_orig/$height_orig;
if ($height_orig < 300) {
$width = $height*$ratio_orig;
} else {
$height = $width/$ratio_orig;
}
$image_p = imagecreatetruecolor($width, $height);
$image = $create($filename);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
imagejpeg($image_p, null, 100);
}
答案 0 :(得分:0)
找出原始图像,高度或宽度中哪个较小。如果此值小于195像素的最小值,请将其设置为此最小值,并根据图像的原始宽高比缩放另一个值:
$minSize = 195;
$aspectRatio = $width_orig / $height_orig;
if ($width_orig < $height_orig) {
if ($width_orig < $minSize) {
$width = $minSize;
$height = $width / $aspectRatio;
}
} else {
if ($height_orig < $minSize) {
$height = $minSize;
$width = $height * $aspectRatio;
}
}