Я потратил последнюю неделю на разработку системы загрузки, в которой мое приложение могло бы взять файл RAW с камеры, извлечь метаданные и затем сохранить файл как jpg.
Я использую ExifTool для извлечения метаданных . Я использую ImageMagick для преобразования файла в .jpg.
Я работаю с 4 типами файлов, начиная с CRW, RAF, ARW и NEF.
Однако загрузка различных файлов RAW в браузер приводит к определению различных типов файлов при загрузке. Это было проблемой для двух разных типов RAW:
CRW (Canon): $_FILES['type']: 'image/x-canon-crw'
Вело себя должным образом. Удалось извлечь метаданные и сохранить файл как .jpg. Это единственное, что распознал браузер. RAF (Fujifilm): $_FILES['type']: 'application/octet-stream'
Вёл себя как положено. Удалось извлечь метаданные и сохранить файл как .jpg. ARW (Sony): $_FILES['type']: 'application/octet-stream'
Удалось извлечь метаданные, но ImageMagick не смог распознать файл и сохранить его как .jpg. ImageMagik отвечает
"magick: Unknown field with tag 50341 (0xc4a5) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/1037."
Итак, кажется, ImageMagick обрабатывает его как TIFF? NEF (Nikon): $_FILES['type']: 'application/octet-stream'
смог извлечь метаданные, но image Magick неожиданно сохранял jpg с эскизом, а не загруженным изображением (я не знаю почему!) ImageMagick отвечает
"magick: Unknown field with tag 36867 (0x9003) encountered. `TIFFReadDirectory' @ warning/tiff.c/TIFFWarnings/1037."
Похоже, это еще одна проблема с TIFF. Понятия не имею, почему?
Код, управляющий преобразованием ImageMagick, не меняется между типами RAW.
Я могу работать с файлами Canon и Fujifilm, но не с Sony или Nikon, и я не могу понять, почему. Как исправить эту проблему с TIFF?
Есть ли у кого-нибудь еще опыт работы с этим?