2

Я работаю с изображениями отсканированных книг, поэтому сотни изображений с высоким разрешением. Я делаю конверсионную работу с Photoshop Elements - я могу быстро сохранить их в несжатый TIFF, но преобразование в сжатый PNG с использованием одного потока занимает много времени.

Знаете ли вы программное обеспечение, в идеале простое и бесплатное, которое будет конвертировать эти файлы TIFF в PNG многопоточным способом (от 4 до 8 одновременных файлов), чтобы использовать преимущества этих ядер и сократить время конвертации? Я не слишком обеспокоен небольшими изменениями в конечном размере.

3 ответа3

4

Если вы конвертируете большое количество файлов, вы можете использовать GNU параллельно в сочетании с imagemagick для одновременного выполнения нескольких заданий.

parallel -j 8 convert {} {.}.png ::: *.tiff

... преобразует каждый img.tiff в каталоге в img.png, выполняя 8 заданий одновременно. Если вы отключите параметр -j 8 , для параллели по умолчанию будет установлено одно задание на ядро ЦП.

Чтобы преобразовать рекурсивно, объедините find с параллельным:

find . -type f -name "*.tiff" | parallel -j 8 convert {} {.}.png
2

ImageMagick - это отличное бесплатное программное обеспечение, способное выполнять то, что вы просите, из командной строки. Вот выдержка из многопоточной информации.

Использовать его так же просто, как набрать convert image.tif image.png но его можно использовать со всеми видами опций, которые будут соответствовать вашим потребностям. Проверьте документацию для получения дополнительной информации об этом.

0

Запись (то есть сжатие) одного PNG-файла как многопоточного возможно, но сложно. Реализация с открытым исходным кодом - https://github.com/anvio/png-parallel, ссылка на которую приведена по адресу https://stackoverflow.com/questions/10827247/parallelization-of-png-file-creation-with-c-libpng-and -открытый

Если возможно, вместо этого сожмите несколько PNG, по одному на поток, как предлагает evilsoup.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .