#php #pdf #imagemagick #imagemagick-convert
Вопрос:
я выполняю преобразование PDF-файлов в html-файлы с помощью php и библиотеки ImageMagick, но у меня возникли проблемы с разрешением, мне нужны изображения после преобразования с 1920 x 1080, но они идут с 1134×850. Вот код:
<?php
$imagick = new Imagick();
$imagick->setSize(1920, 1080);
$imagick->readImage('myfile.pdf');
$imagick->setImageCompressionQuality(100);
$imagick->writeImages('images/converted.png', false);
echo '<img style="width: 100%;" width="1080" height="1920" src="images/converted-0.png">';
echo '<br>';
echo '<img style="width: 100%;" width="1080" height="1920" src="images/converted-1.png">';
echo '<br>';
echo '<img style="width: 100%;" width="1080" height="1920" src="images/converted-2.png">';
Комментарии:
1. Установите большую плотность, например 300 точек на дюйм, перед чтением в формате PDF. Затем после прочтения измените размер до нужного вам размера. Затем установите любое сжатие или качество, а затем сохраните. Но обратите внимание, что сжатие PNG в 100 не обязательно является хорошим значением. Сжатие PNG отличается от сжатия JPG в диапазоне от 0 до 100. Видишь imagemagick.org/script/command-line-options.php#quality
2. большое вам спасибо за помощь, но как я могу установить большую плотность? я искал, но не нашел команду
3. Я верю, что в Imagick это называется разрешением, хотя я не эксперт по Imagick. видишь php.net/manual/en/imagick.setimageresolution.php
4. проблема заключалась в положении заданного решения, которое должно быть до того, как появится готовое изображение, спасибо за помощь. Теперь код есть:
<?php $imagick = new Imagick(); $imagick->setResolution(200, 200); $imagick->readImage('myfile.pdf'); $imagick->setImageCompressionQuality(4); $imagick->writeImages('images/converted.png', false);