Я впервые использую ImageMagick, мне удалось установить все мои зависимости и запустить конвертер через Terminal, но у меня возникли проблемы с запуском некоторых команд с 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.
Вот что я проверил:
Любая помощь приветствуется!
Проблема заключается в том, что вы не используете абсолютные пути. Используйте что-то вроде __FILE__ или на компьютере с Windows (вам нужно заменить обратную косую черту на forwardlash):
$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
$im->setSize()