Преобразование RAW-фотографий в JPEG в linux / php

Я работаю над приложением для загрузки фотографий и должен разрешать пользователям загружать необработанные файлы с камер (это не jpeg), и сервер автоматически создает версию jpeg. В настоящее время у меня установлен Imagemagick, но я не думаю, что есть способ сделать это там.

Камеры выпускаются с новыми необработанными форматами все время, поэтому я ищу что-то, что будет relativley в актуальном состоянии, и команда php exec () тоже вариант.

Есть ли у кого-нибудь предложения для необработанного преобразования?

Фактически, как вы можете видеть в этом списке, ImageMagick поддерживает фотографии RAW: http://www.imagemagick.org/script/formats.php (например, фотографии NEF nikon и фотографии canon .CR2).

Пример кода для .CR2 фото:

$im = new Imagick( 'source.CR2' ); $im->setImageFormat( 'jpg' ); $im->writeImage( 'result.jpg' ); $im->clear(); $im->destroy(); 

Вы можете загрузить с помощью exec (), и по мере того, как вы конвертируете в jpg, вы можете использовать «подсказку» jpg для ускорения работы – возможно, он только считывает столько данных, чтобы создать jpg не весь файл.

Из памяти определение появляется после преобразования перед изображением:

 convert -define jpeg:size=128x128 input.raw -thumbnail 128x128 output.jpg 

Imagemagick использует Ufraw для работы с RAW-файлами, и я обнаружил, что с моими файлами CR2 мне нужно немного подкрутить один из файлов. Я полагаю, что поддерживаемый файл зависит от Ualraw delagate.

Я думаю, что файлы RAW для Samsung – проблема, но не только с помощью Imagemagick

Это файл delegates.xml, который я изменил, изменив значение 4 на 6 в этой строке:

 <delegate decode="dng:decode" stealth="True" command="dcraw.exe -6 -w -O &quot;%u.ppm&quot; &quot;%i&quot;"/> 

Еще проще для sudo apt-get install ufraw ufraw-batch

то либо используйте ufraw (см. man-страницы), либо используйте Imagemagic, который использует ufraw

конвертировать mypic.RAF mypic.jpeg