2

我想知道是否有一种方法可以使用诸如 GD 或 ImageMagick 之类的库来调整一批图像的大小,从而在保持其分辨率的同时缩小图像的大小?

目前,我从一个非常大的图像(大约 3500 X 2400 @ 300ppi)开始,当我尝试将图像缩小(大约 1000 X 775)时,我得到了一个正确尺寸的大图像,但分辨率下降到 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);

输出图像的质量非常低,这是它的样子

http://i46.tinypic.com/ehfyf8.jpg

4

2 回答 2

2

在这里查看第一条评论:

http://php.net/manual/en/imagick.setresolution.php

除了设置分辨率之外,您还必须设置分辨率单位:

$im->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
于 2012-06-07T14:51:41.510 回答
0

在将图像保存到磁盘之前调整图像大小后再次尝试调用 setResolution。此外,请参阅此处有关密度的说明:ImageMagick 文档

于 2012-06-07T15:02:08.483 回答