У меня есть изображение TIF на 1.8 ГБ, что я пытаюсь открыть на своей машине с Ubuntu 18.04.1 LTS. У меня есть 8 ГБ RAM и 2 ГБ области подкачки. Однако я не могу открыться, изображение на Программе просмотра изображений Gnome запаса (говорит, что "Размеры изображения в формате TIFF, слишком большого"), или Shotwell (говорит "фото то, чтобы избегать исходного файла: [путь к файлу]"), или Калека (ошибки), или в моем Windows 7 VM с 4 ГБ RAM (говорит, что слишком мало RAM даже при том, что это имело свободных более чем 2.5 ГБ), или feh, который ведет себя как это:
$ feh DO_NOT_OPEN.tif
TIFFFetchNormalTag: Warning, Incompatible type for "RichTIFFIPTC"; tag ignored.
feh WARNING: DO_NOT_OPEN.tif - No Imlib2 loader for that file format
feh: No loadable images specified.
See 'man feh' for detailed usage information
Там какой-либо путь состоит в том, чтобы открыть это изображение на Ubuntu?
(Для любопытного изображение - этот. Я назвал его как этот, потому что в первый раз я пытался открыть его, разрушил мой компьютер ¯ _ (ツ)_/¯)
Проблемой является, вероятно, RAM и/или ЦП.
Изображение в формате TIFF сжато до LZW. Когда приложение хочет отобразить его, это должно распаковать изображение сначала. И это - то, где RAM и ЦП играют роль. Кроме того, в зависимости от приложения, могут быть буферы, этому также нужна RAM.
Я сделал некоторые (ненаучные) эксперименты и заметил различия между приложениями в трех фазах: при загрузке изображения, после загрузки изображения, при увеличивании масштаб.
Shotwell взял до 5 ГБ RAM при открытии файла и затем опустился до 2 ГБ. Когда я увеличил масштаб, это подошло к 7 ГБ.
Калека подошел к 5 ГБ и остался там при просмотре изображения и увеличивания масштаб. Использование оперативной памяти, постепенно увеличиваемое при редактировании изображения.
GwenView подошел к 3.8 ГБ при загрузке и опустился до 2 ГБ впоследствии. При увеличивании масштаб это подошло к 2.7 ГБ.
Ваш лучший выбор пробует GwenView (программа просмотра изображений по умолчанию в Kubuntu, но может быть установлен в запасе Ubuntu также).
В целом, если изображение является слишком большим для вписывания в RAM, можно разделить его использование convert
который является частью imagemagick
пакет.
Необходимо увеличить пределы по умолчанию, которые определяются в /etc/ImageMagick-6/policy.xml
(номер 6 может измениться в будущих версиях). Необходимо скорректировать максимальный размер в пикселях, которые определяются в следующих строках:
<policy domain="resource" name="width" value="16KP"/>
<policy domain="resource" name="height" value="16KP"/>
KP означает KiloPixels, т.е. тысяча пикселей. В Вашем случае изображение имеет 40000x12788 пикселей, таким образом, только необходимо изменить ширину на что-то большее, чем 40 килопондов, например, 41 килопонд.
Кроме того, необходимо увеличить максимальное дисковое пространство:
<policy domain="resource" name="disk" value="1GiB"/>
к чему-то разумному как 10 ГиБ.
Чтобы разделить изображение на 5x3 части и произвести один файл на часть, используйте следующую команду:
convert -crop 5x3@ inputfile.tif outputfile%0d.tif
Для получения дополнительной информации о convert
, посмотрите, что человек преобразовывает или смотрит на документацию.
Возможно, немного вне темы, но вот сценарий удара quick&dirty, который размещает изображение рядом и создает страницу HTML, которая отображает обзор, где можно нажать на мозаику для открытия его в полном разрешении. Сохраните его как, например. tile_image.sh
и вызовите его как ./tile_image.sh originalImage tilesX tilesY
, где tilesX является количеством мозаик горизонтально, и tilesY является количеством мозаик вертикально.
#!/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
Я протестировал для просмотра файла TIFF на 1,7 гибибайта в Dell Precision M4800 с 16 гибибайтами RAM и Ubuntu 18.04.1 LTS с Уэйлендом. Я протестировал с gimp
также в Dell Latitude E7240 с 8 гибибайтами RAM и 18.04.1 персистентных живых LTS с Xorg.
Общее Использование оперативной памяти включая операционную систему измеряется с free -m
.
gimp
- работы лучше всего для меня также в полном разрешении (незамедлительно), 6 143 мебибайт RAM. Это работает хорошо и с 16 гибибайтами RAM и с 8 гибибайтами RAM.
shotwell
- работы также над полным разрешением (незамедлительно), 7 920 мебибайт RAM (после некоторой горизонтальной и вертикальной прокрутки в полном разрешении)
gpicview
- работы, но медленнее (не удался показать полное разрешение непосредственно, но работы при постепенном увеличивании масштаб к полному разрешению, общему Использованию оперативной памяти при показе и изменении масштаба 3 016 мебибайт RAM, но 4 219 мебибайт RAM во время загрузки.
feh
- не работает 'Загрузчик № ImLib2 на тот формат файла'
eog
- не работает 'слишком большое изображение'ristretto
- не работает (тихо, показывает миниатюру, но никакое изображение),Это должно работать с Ubuntu и 8 гибибайт RAM для просмотра этого изображения с несколькими средствами просмотра и редактора gimp
работы действительно хорошо для меня. С 6 гибибайтами RAM необходимо выбрать легкое средство просмотра, и с 4 гибибайтами, вероятно, быть готовыми ожидать некоторого свопинга.
Заметьте, что я измерил общее использование RAM (включая операционную систему).
Это - замечательное изображение, которое определенно стоит масштабировать в с инструментами, которые Вы имеете в наличии. Я должен добавить, что инструмент масштабирования веб-сайта работает хорошо с Firefox для меня в компьютере с 4 ГБ RAM, я мог достигнуть уровня масштабирования, соответствующего полному разрешению файла TIFF на 1,7 ГБ, и я мог прокрутить горизонтально и вертикально видеть целое изображение.