Я работаю над приложением для загрузки фотографий и должен разрешать пользователям загружать необработанные файлы с камер (это не 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 "%u.ppm" "%i""/>
Еще проще для sudo apt-get install ufraw ufraw-batch
то либо используйте ufraw (см. man-страницы), либо используйте Imagemagic, который использует ufraw
конвертировать mypic.RAF mypic.jpeg