我需要将所有上传的文件更改为72 dpi.我正在使用php imagick扩展.
继承人我试过的(我使用的图像是300dpi):
$image = new Imagick();
$image->setResolution(72,72) ;
$image->readImage($img);
$image->resampleImage (72,72,imagick::FILTER_UNDEFINED,1);
$image->writeImage($target)
Run Code Online (Sandbox Code Playgroud)
这似乎没什么.图像正在上传,但保持在300dpi
MatTheCat的答案就是现场.您也可以尝试setImageUnits()确保它使用英寸而不是厘米.
$image->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$image->setImageResolution(72,72);
Run Code Online (Sandbox Code Playgroud)
只需更改dpi就不需要重新采样.
请注意,单独更改dpi不会影响文件大小,仅适用于重新取样和打印.
看来你必须使用 setImageResolution 而不是 setResolution :http://www.php.net/manual/fr/function.imagick-setresolution.php#95533