Warum kann ich das Bild in keinem Viewer öffnen?
Das Problem ist wahrscheinlich RAM und / oder CPU.
Das TIFF-Bild ist LZW-komprimiert. Wenn eine Anwendung es anzeigen möchte, muss sie zuerst das Bild dekomprimieren. Und hier kommen RAM und CPU ins Spiel. Darüber hinaus kann es je nach Anwendung Puffer geben, die auch RAM benötigen.
Ich habe einige (nicht wissenschaftliche) Experimente durchgeführt und Unterschiede zwischen Anwendungen in drei Phasen festgestellt: beim Laden des Bildes, nach dem Laden des Bildes, beim Vergrößern.
Shotwell benötigte beim Öffnen der Datei bis zu 5 GB RAM und fiel dann auf 2 GB zurück. Als ich hineingezoomt habe, waren es bis zu 7 GB.
Gimp stieg auf 5 GB und blieb dort, wenn das Bild angezeigt und vergrößert wurde. Die RAM-Auslastung nahm beim Bearbeiten des Bildes allmählich zu.
GwenView stieg beim Laden auf 3,8 GB und fiel danach auf 2 GB. Beim Vergrößern wurden 2,7 GB erreicht.
Am besten probieren Sie GwenView aus (der Standard-Bildbetrachter in Kubuntu, kann aber auch in Ubuntu installiert werden).
Welche Optionen habe ich, wenn das Image für RAM viel zu groß ist?
Wenn das Image zu groß ist, um in den Arbeitsspeicher zu passen, können Sie es im Allgemeinen mit convert
dem Teil des imagemagick
Pakets aufteilen .
Sie müssen die in definierten Standardgrenzwerte erhöhen /etc/ImageMagick-6/policy.xml
(die Zahl 6 kann sich in zukünftigen Versionen ändern). Sie müssen die maximale Größe in Pixel anpassen, die in den folgenden Zeilen definiert sind:
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
KP bedeutet Kilopixel, dh tausend Pixel. In Ihrem Fall hat das Bild 40000 x 12788 Pixel, sodass Sie nur die Breite auf etwas größer als 40 KB ändern müssen, z. B. 41 KB.
Außerdem müssen Sie den maximalen Speicherplatz erhöhen:
<policy domain="resource" name="disk" value="1GiB"/>
zu etwas Vernünftigem wie 10GiB.
Verwenden Sie den folgenden Befehl, um das Bild in 5 x 3 Teile aufzuteilen und eine Datei pro Teil zu erstellen:
convert -crop 5x3@ inputfile.tif outputfile%0d.tif
Weitere Informationen convert
finden Sie unter Man Convert oder in der Dokumentation .
Vielleicht etwas abseits des Themas, aber hier ist ein schnelles und schmutziges Bash-Skript, das ein Bild kachelt und eine HTML-Seite erstellt, die eine Übersicht anzeigt, in der Sie auf eine Kachel klicken können, um sie in voller Auflösung zu öffnen. Speichern Sie es als zB tile_image.sh
und rufen Sie es wie ./tile_image.sh originalImage tilesX tilesY
folgt auf , wobei tilesX die Anzahl der Kacheln horizontal und tilesY die Anzahl der Kacheln vertikal ist.
#!/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