我想知道是否有办法使用GD或ImageMagick这样的库来调整一批图像的大小,以便在保持其分辨率的同时调整图像大小?
目前,当我尝试向下调整图像大小(大约1000 X 775)时,我开始使用非常大的图像(大约3500 X 2400 @ 300ppi),我得到了正确尺寸的大图像,但分辨率下降到72ppi(由photoshop确认)。
$im = new Imagick();
//Initial resolution of image
$im->setResolution(300,300);
$im->readImage('mypdf.pdf');
$im->adaptiveResizeImage(707,1000);
我也用过:
$image->resizeImage(707,1000, imagick::FILTER_LANCZOS, 0.9, true);
但结果却差不多了。提前致谢。欢迎任何建议。
在阅读完这里的建议后,我的代码现在看起来像是
$im = new Imagick();
$im->setResolution(300,300);
$im->readImage('mypdf.pdf');
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$im->adaptiveResizeImage(707,1000);
$im->setResolution(300,300);
$im->setImageFormat( "jpg" );
$originalImageFile = 'myjpg.jpg';
$im->writeImage($originalImageFile);$im->setResolution(300,300);
输出图像的质量非常低,这就是它的样子
答案 0 :(得分:2)
点击此处的第一条评论:
http://php.net/manual/en/imagick.setresolution.php
除了设置分辨率,您还必须设置分辨率单位:
$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
答案 1 :(得分:0)
在将图像保存到磁盘之前调整图像大小后再次尝试调用setResolution。此外,请参阅此处有关密度的说明:ImageMagick documentation。