Saltar al contenido

¿Cómo ver imágenes EXTREMADAMENTE grandes?

Solución:

¿Por qué no puedo abrir la imagen en ningún visor?

El problema probablemente sea la RAM y / o la CPU.

La imagen TIFF está comprimida en LZW. Cuando una aplicación quiere mostrarlo, primero debe descomprimir la imagen. Y ahí es donde entran en juego la RAM y la CPU. Además, dependiendo de la aplicación, puede haber búferes que también necesiten RAM.

Hice algunos experimentos (no científicos) y noté diferencias entre aplicaciones en tres fases: al cargar la imagen, después de cargar la imagen, al hacer zoom.

Shotwell tomó hasta 5 GB de RAM al abrir el archivo y luego se redujo a 2 GB. Cuando hice zoom, subió a 7 GB.

Cañutillo subió a 5 GB y permaneció allí al ver la imagen y hacer zoom. El uso de RAM aumentó gradualmente al editar la imagen.

GwenView subió a 3.8GB mientras se cargaba y luego bajó a 2GB. Al hacer zoom, subió a 2,7 GB.

Su mejor opción es probar GwenView (el visor de imágenes predeterminado en Kubuntu, pero también se puede instalar en Ubuntu estándar).

¿Qué opciones tengo si la imagen es demasiado grande para la RAM?

En general, si la imagen es demasiado grande para caber en la RAM, puede dividirla usando convert que es parte del imagemagick paquete.

Necesita aumentar los límites predeterminados que se definen en /etc/ImageMagick-6/policy.xml (el número 6 puede cambiar en futuras versiones). Debe ajustar el tamaño máximo en píxeles, que se definen en las siguientes líneas:

<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>

KP significa KiloPixels, es decir, miles de píxeles. En su caso, la imagen tiene 40000×12788 píxeles, por lo que solo necesita cambiar el ancho a algo mas grande que 40KP, por ejemplo 41KP.

Además, debe aumentar el espacio máximo en disco:

<policy domain="resource" name="disk" value="1GiB"/>

a algo razonable como 10GiB.

Para dividir la imagen en partes de 5×3 y producir un archivo por parte, use el siguiente comando:

convert -crop [email protected] inputfile.tif outputfile%0d.tif

Para obtener más información sobre convert, vea man convert o eche un vistazo a la documentación.


Tal vez un poco fuera de tema, pero aquí hay un script de bash rápido y sucio que muestra una imagen en mosaico y crea una página html que muestra una descripción general donde puede hacer clic en un mosaico para abrirlo en resolución completa. Guárdelo como, por ejemplo, tile_image.sh e invocarlo como ./tile_image.sh originalImage tilesX tilesY, donde tilesX es el número de mosaicos horizontalmente y tilesY es el número de mosaicos verticalmente.

#!/bin/bash
INPUT_FILE=$1
TILES_X=$2
TILES_Y=$3
OUTPUT_FILE=${INPUT_FILE%.*}_tile_%0d.png
convert -crop $TILES_X"x"$TILES_Y@ $INPUT_FILE $OUTPUT_FILE
HTML_FILE=${INPUT_FILE%.*}_tile_view.html
echo "<html><body><style type="text/css">table,tr,td,a {padding:0;border-spacing:0} img:hover {opacity:.9}</style><table>" > $HTML_FILE
X=0
Y=0
while [ $Y -lt $TILES_Y ]; do
    echo "<tr>" >> $HTML_FILE
    while [ $X -lt $TILES_X ]; do
        TILE_NUMBER=$(echo $Y*$TILES_X+$X | bc -l)
        TILE_NAME=${INPUT_FILE%.*}_tile_$TILE_NUMBER.png
        THUMBNAIL=${INPUT_FILE%.*}_tile_$TILE_NUMBER"_thumb.png"
        convert -resize 100x100 $TILE_NAME $THUMBNAIL
        echo "<td><a href=""$(basename $TILE_NAME)""><img src=""$(basename $THUMBNAIL)""></a></td>" >> $HTML_FILE
        let X=X+1
    done
    let X=0
    echo "</tr>" >> $HTML_FILE
    let Y=Y+1
done
echo "</table></body></html>" >> $HTML_FILE

Prueba

Probé para ver el archivo Tiff de 1,7 GiB en una Dell Precision M4800 con 16 GiB de RAM y Ubuntu 18.04.1 LTS con Wayland. Probé con gimp también en un Dell Latitude E7240 con 8 GiB de RAM y 18.04.1 LTS vivo persistente con Xorg.

El uso total de RAM, incluido el sistema operativo, se mide con free -m.

  • gimp – funciona mejor para mí también a resolución completa (sin demora), 6143 MiB RAM. Funciona bien tanto con 16 GiB de RAM como con 8 GiB de RAM.

  • shotwell – funciona también a resolución completa (sin demora), 7920 MiB RAM (después de algunos desplazamientos horizontales y verticales a resolución completa)

  • gpicview – funciona pero más lento (no pudo mostrar la resolución completa directamente, pero funciona cuando se amplía gradualmente a resolución completa, uso total de RAM al mostrar y hacer zoom 3016 MiB RAM, pero 4219 MiB RAM durante la carga.

  • feh – no funciona ‘No hay cargador ImLib2 para ese formato de archivo’

  • eog – no funciona ‘imagen demasiado grande’
  • ristretto – no funciona (en silencio, muestra una miniatura, pero ninguna imagen)

Conclusión

Debería funcionar con Ubuntu y 8 GiB de RAM para ver esta imagen con varios visores, y el editor gimp funciona muy bien para mí. Con 6 GiB de RAM, debería seleccionar un visor ligero, y con 4 GiB probablemente esté preparado para esperar algunos cambios.

Tenga en cuenta que he medido el uso total de RAM (incluido el sistema operativo).

Comentario final

Esta es una gran imagen que vale la pena ampliar con las herramientas que tiene disponibles. Debo agregar que la herramienta de zoom del sitio web funciona bien con Firefox para mí en una computadora con 4 GB de RAM, podría alcanzar un nivel de zoom correspondiente a la resolución completa del archivo Tiff de 1.7 GB y podría desplazarme horizontal y verticalmente para ver La imágen completa.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *