Php 组合2个imagesmagick resize命令
我必须通过Imagesmagick调整图像大小,目前必须创建2个较小的图像版本,如下所示:Php 组合2个imagesmagick resize命令,php,optimization,imagemagick,Php,Optimization,Imagemagick,我必须通过Imagesmagick调整图像大小,目前必须创建2个较小的图像版本,如下所示: <?php $command = $IMPath.'convert -limit memory 32 input.jpg -resize 500x500 biggeroutput.jpg'; exec($command, $output); $command = $IMPath.'convert -limit memory 3
<?php
$command = $IMPath.'convert -limit memory 32 input.jpg -resize 500x500 biggeroutput.jpg';
exec($command, $output);
$command = $IMPath.'convert -limit memory 32 input.jpg -resize 90 smalleroutput.jpg';
exec($command, $output);
?>
有没有一种方法可以将此合并到一个exec?不启动转换2次?ImageMagick命令行的文档清楚地表明,不支持多个输出:您唯一的选择是直接使用或PHP API,而不是命令行(提示:使用
Imagick::clone
或imagecreatetruecolor
/imagecopy
功能)
作为一个侧节点,通过这种方式,您还可以避免仅为imagemagick客户端生成单独进程的开销
编辑:此外,您可能希望缓存这些备用版本,这样您就不必在每次有人请求时都重新生成它们。我在几年前开发的一些图像密集型网站上也做了同样的操作。关于优化图像缩小步骤的主题,而不直接回答您的问题(像CAFxX一样,我从未见过将两个输出转换为一个ImageMagick命令的方法) 一个选项是使用第一个命令从中等大小的图像创建较小的缩略图。即:
使用ImageMagick API可以很好地实现这一点,因为您只需将源图像加载到内存中一次,然后收缩一次,保存JPEG,然后再次收缩,而无需从1.将数据从磁盘加载回内存。GD对我的应用程序来说会变慢,ImageMagick API是否比直接使用ImageMagick更快?我不明白它是如何做到的再慢一点。此外,ImageMagick命令行的文档清楚地表明,不支持多个输出。对我的答案,我投了不必要的反对票。我对你们两个投了赞成票,对我来说,这似乎是一个有效的问答。