调整图像大小的最佳方法是什么,可以是任何尺寸,调整到固定大小,或者至少适合固定大小?
图像来自不在我控制范围内的随机 url,我必须确保图像不会超出大约 250 像素 x 300 像素的区域,或图层的 20% x 50%。
我认为我会首先确定大小,如果它超出范围,则按一个因子调整大小,但我不确定如果图像大小可以是任何大小,我不确定如何计算调整大小的逻辑。
编辑:我没有本地访问图像的权限,图像 url 在一个变量中,输出为 img src=...,我需要一种方法来指定宽度和高度标签的值。
最佳答案
使用 ImageMagick 很容易做到。您可以通过 exec 使用转换命令行工具,也可以使用 http://www.francodacosta.com/phmagick/resizing-images .
如果您使用“转换”,您甚至可以告诉 ImageMagick 只调整较大图像的大小而不转换较小图像:http://www.imagemagick.org/Usage/resize/
如果您没有本地访问权限,您将无法使用 ImageMagick:
<?php
$maxWidth = 250;
$maxHeight = 500;
$size = getimagesize($url);
if ($size) {
$imageWidth = $size[0];
$imageHeight = $size[1];
$wRatio = $imageWidth / $maxWidth;
$hRatio = $imageHeight / $maxHeight;
$maxRatio = max($wRatio, $hRatio);
if ($maxRatio > 1) {
$outputWidth = $imageWidth / $maxRatio;
$outputHeight = $imageHeight / $maxRatio;
} else {
$outputWidth = $imageWidth;
$outputHeight = $imageHeight;
}
}
?>
关于php - 在 PHP 中任意调整图像大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/461167/