Как я могу изменить dpi изображения с расширением imagick
Мне нужно изменить все загруженные файлы до 72 точек на дюйм. Я использую расширение php imagick.
Вот то, что я пробовал (изображение, которое я использую, является 300 точек на дюйм):
$image = new Imagick();
$image->setResolution(72,72) ;
$image->readImage($img);
$image->resampleImage (72,72,imagick::FILTER_UNDEFINED,1);
$image->writeImage($target)
это ничего не кажется. изображение загружается, но остается на 300 точек на дюйм
3 ответа
Ответ MatTheCat на месте. Вы также можете попробовать setImageUnits()
чтобы убедиться, что он работает с дюймами, а не сантиметрами.
$image->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$image->setImageResolution(72,72);
Пересэмплирование не нужно просто для изменения dpi.
Обратите внимание, что изменение dpi само по себе не влияет на размер файла и применяется только к повторной выборке и печати.
Кажется, вы должны использовать setImageResolution, а не setResolution: http://www.php.net/manual/fr/function.imagick-setresolution.php
используйте эту его работу с расширением imagick:
$finalImageOnline = $canvas->getCore(); //get Imagick object
$finalImageOnline->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH);
$finalImageOnline->setImageResolution(72,72);
$finalImageOnline->resampleImage (72,72,imagick::FILTER_SINC,1);
$finalImageOnline->setImageFormat("jpg");
file_put_contents ($this->path . '/' . 'online' . '/' .$namaFile.'.jpg', $finalImageOnline);