Viewer para imagens enormes em linux (imagens em cores de 100 MP)

7

Eu tenho um monte de imagens coloridas de 50-100 MP que eu gostaria de ver no linux.

Por exemplo, o tamanho 10000x17000 é típico, mas a maioria dos visualizadores de imagens falha com falta de memória.

O formato do arquivo é png ou jpg.

O que eu quero é a capacidade de ver essa imagem em parte e no todo, com a capacidade de percorrer a imagem. Baixo consumo de memória, portanto, nenhuma imagem completa é descompactada em bitmap na memória.

    
por osgx 10.11.2011 / 19:09

2 respostas

5

Gwenview

Este é o visualizador de imagens padrão do KDE. Eu tentei em um JPEG colorido de 128 megapixels (meu sistema operacional é de 32 bits). Gwenview carregou a imagem cerca de 1 segundo.

  • Carrega a imagem reduzida inicialmente. O processo está usando apenas 55.8 MB de memória, então, claramente, ele não carregou os dados completos da imagem não compactada.

  • Com zoom de 100%, é bem irritante quando eu desloco a imagem. O processo agora usa 520 MB de memória, o que é um pouco mais do que os 489 MB que a imagem descompactada de 32 bits ocuparia.

No entanto, com imagens do tamanho que você descreveu, carregar a coisa toda na memória é tratável em um computador recente. (O limite de endereçamento de 32 bits é de 3 GB no Linux.)

ImageMagick

ImageMagick suporta o processamento de imagens enormes sem armazenar tudo na memória.

Para fazer isso, use

display -limit memory 256mb huge_img.png

(substitua 256mb pela quantidade de memória que você deseja usar). O ImageMagick armazenará o restante dos dados de pixel no disco ( /tmp/magick-12345678 ), para que não precise armazená-los todos na memória.

Parece ser mais lento que o Gwenview, mas você pode preferir que não queira instalar todas as dependências do KDE do Gwenview ou que sejam altamente limitadas por recursos.

    
por 04.03.2014 / 05:53
1

Os jpgs comprimidos podem ser apenas 50 meg, mas a varredura pura seria de cerca de 700 meg. Os sistemas operacionais de 32 bits só podem acessar 2 ou 3 GB de memória em um processo ... Com o carregamento do SO e o programa gráfico, pode não haver espaço.

A questão é que as ferramentas de imagens que você está usando funcionam com uma imagem internamente. Para fazer a visualização em janelas, as ferramentas precisariam de acesso bit a bit aos dados jpg. Eu não sei se isso é possível.

Você pode tentar isso em um sistema operacional de 64 bits com 8 ou 16 gigabytes de memória. Se funciona lá então você sabe que eles estão expandindo o jpg.

    
por 10.10.2012 / 15:13