我有一个项目,在这个项目中,我有一个hotfolder系统,可以在其中将文件拖放到文件夹中,并执行一个PHP脚本,该脚本使用ImageMagick对文件进行了一些处理。
我要使用ImageMagick进行的操作之一是更改图片分辨率的简单过程。
我想要做的是获得72 DPI分辨率的图片。这是我的代码的一部分:
$im = new Imagick();
$im->setResolution(72,72);
$im->readimage($xmlConfig->general->input); //Input is TIF 300 DPI
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$im->setImageResolution(72,72);
$im->resampleImage(72,72,imagick::FILTER_UNDEFINED,0);
$im->setimageformat($xmlConfig->extension); //added in EDIT
$im->writeimage($xmlConfig->general->output); //Output is also 300 DPI Filename is something.jpg added in EDIT
$im->destroy();
那么,我在做什么错呢?因为我无法使它正常工作。我已经尝试了所有可用的组合来尝试正确解决此问题,并且将其作为疯子进行了搜索,但仍然没有得到我想要的结果。
**编辑:*在进行一些测试时,我注意到这确实有效。但是当我将部分添加setimageformat
到JPEG并将文件名设置为something.jpg时,它就出错了。
即使我在上面指定了72,JPEG始终是300 DPI。
我发现我需要执行此操作以删除附加到文件的任何配置文件,以便能够对图片进行更改。
$im->stripimage();
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句