Изменение в dpi с использованием библиотеки imagick в php - PullRequest
2 голосов
/ 12 января 2012

Мы добавляем текст, используя функцию annotateimage, используя библиотеку imagick в php.Исходный файл имеет разрешение 300 т / д, но после редактирования выходной файл становится 96 т / д.

Как мы можем это исправить?

EDIT******************************

Когда мы пробуем это на нашем локальном сервере разработки, выводим файлтакже показывает на 300 точек на дюйм.Эта проблема возникает только тогда, когда мы проверяем это на нашем веб-сервере.Обе версии для Linux и Imagick также одинаковы.

Ответы [ 2 ]

0 голосов
/ 10 апреля 2018

Сначала попробуйте это с 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);
  }
0 голосов
/ 12 января 2012

Вы можете использовать setResolution для этого, как эквивалент ключа командной строки -density.

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

Редактировать:

Вы должны установить это перед чтениемизображение, чтобы это работало.

$im = new Imagick(); 
$im->setResolution(300,300); 
$im->readImage("image.jpg");
...