Я впервые использую ImageMagick, мне удалось установить все мои зависимости и я могу запустить конвертирование через терминал, но у меня возникают проблемы с запуском некоторых команд из PHP.
Вот тот, который меня полностью озадачил, это прекрасно работает в терминале:
convert DSC4741.nef result.jpg
Но это не будет работать в PHP:
$im = new Imagick( 'DSC4741.nef' );
$im->setImageFormat( 'jpg' );
$im->writeImage( 'result.jpg' );
$im->clear();
$im->destroy();
Я могу конвертировать JPEG без проблем с PHP, но он отказывается делать .NEF.
Вот что я проверил:
Любая помощь приветствуется!
Кажется, проблема в том, что вы не используете абсолютные пути.
Используйте что-то вроде __ФАЙЛ__ или на машине Windows (вам нужно заменить обратную косую черту на прямую):
$im = new Imagick( str_replace('\\', '/', dirname(__FILE__)) . '/DSC4741.nef' );
$im->setImageFormat( 'jpg' );
$im->writeImage( str_replace('\\', '/', dirname(__FILE__)) . '/result.jpg' );
$im->clear();
$im->destroy();
Если это не решит проблему, возможно, внешняя программа для преобразования файловых форматов не установлена или не связана в imagemagick.
Посмотреть здесь: Imagick не может открыть изображения DNG
Других решений пока нет …