Медленное открытие файлов RAW в палочке - PullRequest
0 голосов
/ 09 марта 2019

Я использую wand (привязки API MagickWand для Python) для создания эскизов необработанных изображений Nikon "file.nef".

Вот часть кода:

for arquivo in os.listdir(caminho):

    # Se arquivo termina com
     if arquivo.endswith(".NEF"):

          Inicio = time.time()

          caminho_arquivo = caminho + "/" + arquivo

          with Image(filename=caminho_arquivo) as img:

               Abertura = time.time()

               print("Tempo para abrir: {}".format(int(Abertura - Inicio)))

Tempo para abrir = 12s (время, чтобы просто открыть файл!)

При поиске на форуме ImageMagick я нашел это: http://www.imagemagick.org/

Если вы не хотите открывать ссылку, вот резюме:

For a file from a Nikon D800 camera, exiftool shows:

 Composite:JpgFromRaw='(Binary data 2307391 bytes, use -b option to extract)'
 Composite:OtherImage='(Binary data 918709 bytes, use -b option to extract)'
 Composite:PreviewImage='(Binary data 101723 bytes, use -b option to extract)'

ImageMagick can't see these images. They can be extracted by exiftool:

exiftool -JpgFromRaw -b AGA_2983.NEF >fromraw.jpg
exiftool -OtherImage -b AGA_2983.NEF >other.jpg
exiftool -PreviewImage -b AGA_2983.NEF >preview.jpg

Этот exiftool кажется именно тем, что мне нужно. Можно ли использовать exiftool через Wand?
Есть ли другие варианты решения моей проблемы?

Спасибо!

1 Ответ

0 голосов
/ 11 марта 2019

ОБНОВЛЕНИЕ!- Задача решена!

Причиной, по которой загрузка изображения заняла так много времени, был тип обнаружения файла.Когда-то я использовал код format = "raw" следующим образом:

with wand.Image(filename=caminho_arquivo, format="raw") as img:

Теперь обработка 75 необработанных файлов заняла менее секунды!Черт!

Я только сталкивался с «format = raw», читающим код Sorce, этого не было в документе Дока.

В любом случае, надеюсь, это поможет кому-то в будущем.

...