Изменение dpi с помощью библиотеки imagick в php
Мы добавляем некоторый текст с помощью функции annotateimage, используя библиотеку imagick в php. Исходный файл имеет разрешение 300 точек на дюйм, но после редактирования выходной файл становится 96 точек на дюйм.
Как мы можем это исправить?
EDIT******************************
Когда мы пытаемся сделать это на нашем локальном сервере разработки, выходной файл также отображается с разрешением 300 точек на дюйм. Эта проблема возникает только тогда, когда мы тестируем это на нашем веб-сервере. Обе версии linux и Imagick также одинаковы.
2 ответа:
Для этого можно использовать setResolution, как эквивалент переключателя командной строки-density.
Http://php.net/manual/en/function.imagick-setresolution.php
Правка:
Вы должны установить это перед чтением изображения, чтобы это сработало.
$im = new Imagick(); $im->setResolution(300,300); $im->readImage("image.jpg");
Сначала попробуйте это с Imagick
$image = new Imagick(); $image->setImageUnits(imagick::RESOLUTION_PIXELSPERINCH); $image->setImageResolution(300,300);
Если выше не работает, попробуйте это.
Вы можете читать файл и конвертировать DPI изображения от 96 до 300. Попробовать это.
$imageGet = file_get_contents($imagePath); if($imageGet){ $imageConverted = substr_replace($imageGet, pack("cnn", 1, 300, 300), 13, 5); $savefile = file_put_contents($newimagePath, $imageConverted); }