- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在使用 PHP Imagick 来处理图像。
我有两个用例:“调整大小”和“裁剪”。
在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick 将其放大,而是希望它简单地返回原始大小.
但是,正如 PHP 文档所说,Imagick 的行为已从版本 3(我使用的是版本 6+)开始更改,它始终会放大图像。
Note: The behavior of the parameter bestfit changed in Imagick 3.0.0. Before this version given dimensions 400x400 an image of dimensions 200x150 would be left untouched. In Imagick 3.0.0 and later the image would be scaled up to size 400x300 as this is the "best fit" for the given dimensions. If bestfit parameter is used both width and height must be given.
因此,在我的例子中,对于给定的尺寸 400x400,尺寸为 200x150 的图像应该返回 200x150 而不是 400x300 的图像。对于给定的尺寸 100x100,尺寸为 200x150 的图像应该返回 100x75 的图像(应该按比例缩小)。
我尝试了 thumbnailImage()、resizeImage() 和 scaleImage(),但都没有成功。如果我将 bestfit 设置为 false,它会进行裁剪,这不是我想要的调整大小。
有什么方法可以用 Imagick 完成这个吗?
最佳答案
尝试这样做:
$max_width = 1200;
$max_height = 800;
$im = new Imagick($path_to_image);
$im->resizeImage(
min($im->getImageWidth(), $max_width),
min($im->getImageHeight(), $max_height),
imagick::FILTER_CATROM,
1,
true
);
关于PHP 想象 : How to resize without scaling up?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30521451/
我正在使用 PHP Imagick 来处理图像。 我有两个用例:“调整大小”和“裁剪”。 在“调整大小”中,如果原始图像的尺寸小于给定的宽度和高度,我不希望 Imagick 将其放大,而是希望它简单地
当尝试从 PHP 进行简单的转换时,我收到此错误: exception 'ImagickException' with message 'wand contains no images `Magick
我想了解如何从动画 GIF 中删除帧。 目前我正在尝试这个(作为测试): $count = 1; foreach ($_im AS $frame) { if ($count > 1) { $f
我正在处理 Sylius 1.5 项目,在我的本地环境中一切正常,但是在部署到我的开发环境时,我在过滤图像上遇到错误(使用 liip 想象过滤器)。 该环境由一个运行 sylius 的 docker
我是一名优秀的程序员,十分优秀!