Я установил расширение Imagemagick в моей среде MAMP dev и информацию о PHP, показывающую, что imagemagick установлен правильно. Однако я получаю следующее исключение:
PHP Неустранимая ошибка: исключить исключение «ImagickException» с сообщением 'Невозможно прочитать файл: /Applications/MAMP/htdocs/image/demo.pdf» в /Applications/MAMP/htdocs/image/index.php:8 Трассировки стека: # 0 /Applications/MAMP/htdocs/image/index.php(8): Imagick -> __ construct ('/ Applications / M ...') # 1 {main} в / 8 /
Исходный код:
$ pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; echo $ pdf_file; $ save_to = '/Applications/MAMP/htdocs/image/demo.jpg'; $ img = new imagick ($ pdf_file); // уменьшить размеры - масштабирование приведет к черному цвету в прозрачных областях $ Img-> scaleImage (800,0); // установить новый формат $ Img-> setImageFormat ( 'JPG'); // сохранение файла изображения $ img-> writeImages ($ save_to, false);
Изменить 1:
Я использую brew
для управления пакетами.
Моя конфигурация MAMP:
Расширение Imagick (php.ini):
[Imagick] расширение = "/ USR / местные / Подвал / php55-Imagick / 3.1.0RC2 / imagick.so"
Envvars:
дорожка:
/Applications/MAMP/Library/bin/envvars
Содержание:
#if test "x $ DYLD_LIBRARY_PATH"! = "x"; тогда # DYLD_LIBRARY_PATH = "/ Applications / MAMP / Library / lib: $ DYLD_LIBRARY_PATH" #else #DYLD_LIBRARY_PATH = "/ Applications / MAMP / Библиотека / Библиотека" #fi #export DYLD_LIBRARY_PATH #DYLD_LIBRARY_PATH = "/ Applications / MAMP / bin / ImageMagick / ImageMagick-6.8.9 / Lib: / Applications / MAMP / Библиотека / Библиотека: $ DYLD_LIBRARY_PATH" #export DYLD_LIBRARY_PATH
сначала проверьте свой путь к файлу PDF:
if (! is_readable('/Applications/MAMP/htdocs/image/demo.pdf')) { echo 'file not readable'; exit(); }
если файл доступен для чтения, проверьте это: https://github.com/delphian/drupal-convert-file/wiki/Installing-ImageMagick-on-Mac-OSX-for-PHP-and-MAMP
С http://www.php.net/manual/en/imagick.construct.php
при использовании pdf-файлов мы можем указать, какую страницу использовать, что может в свою очередь помочь правильной конструкции imageMagick при использовании pdf-файла
$pdf_file = '/Applications/MAMP/htdocs/image/demo.pdf'; $img = new Imagick($pdf_file.'[0]'); //[0] indicate the number of the wanted page