7

У меня есть много 50-100 Мп цветных изображений, которые я хотел бы посмотреть на Linux.

Например, типичный размер 10000x17000, но большинству средств просмотра изображений не хватает памяти.

Формат файла - PNG или JPG.

Что я хочу, так это возможность просматривать такое изображение частично и полностью, с возможностью прокручивать изображение. Низкое потребление памяти, поэтому полное изображение не распаковывается в растровое изображение в памяти.

2 ответа2

6

Gwenview

Это стандартный просмотрщик изображений KDE. Я только что попробовал это на 128-мегапиксельном цветном JPEG (моя ОС 32-битная). Гвенвью загрузила изображение примерно за 1 секунду.

  • Это загружает изображение, уменьшенное первоначально. Процесс использует только 55,8 МБ памяти, поэтому очевидно, что он не загружает полные несжатые данные изображения.

  • При 100% увеличении, это довольно быстро, когда я перемещаю изображение. В настоящее время процесс использует 520 МБ памяти, что немного больше, чем 489 МБ, которое занимает 32-битное несжатое изображение.

Тем не менее, с изображениями размера, который вы описали, загрузка всего этого в память может быть отслежена на последнем компьютере. (32-разрядное ограничение адресации составляет 3 ГБ в Linux.)

ImageMagick

ImageMagick поддерживает обработку огромных изображений без сохранения всего в памяти.

Для этого используйте

display -limit memory 256mb huge_img.png

(замените 256mb на столько памяти, сколько вы хотите использовать). ImageMagick будет хранить оставшуюся часть данных пикселей на диске (/tmp/magick-12345678), чтобы не хранить все данные в памяти.

Кажется, он работает медленнее, чем Gwenview, но вы можете предпочесть его, если вы не хотите устанавливать все зависимости KDE от Gwenview или сильно ограничены в ресурсах.

1

Сжатый JPEG может быть только 50 мегабайт, но чистый растр будет около 700 мегабайт. Учитывая 32-битные ОС могут получить доступ к 2 или 3 гигабайтам памяти в процессе ... С загрузкой ОС и графической программой может не быть места.

Вопрос в том, работают ли инструменты изображений, которые вы используете, с внутренним растром. Для оконного просмотра инструментам необходим побитовый доступ к данным jpg. Я не знаю, возможно ли это.

Можете ли вы попробовать это на 64-битной ОС с 8 или 16 гигабайтами памяти. Если это работает там, то вы знаете, что они расширяют JPG.

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