2015-10-26 5 views
0

В настоящее время я работаю над проектом, где у меня есть изображение около 3.9gb. Я хочу, чтобы создать Google Maps, как точки зрения для этого изображения (что-то LibVIPS может генерировать), выполнив следующую команду:LibVIPS сбой при обработке 3.9gb tiff image

vips-dev-8.1.1\bin\vips.exe dzsave testje-131072.tiff mydz 

Однако при этом некоторые предупреждения показаны и после этого аварий программ:

vips warning: tiff2vips: no resolution information for TIFF image "testje-131072.tiff" -- defaulting to 1 pixel per mm 
vips warning: tiff2vips: no resolution information for TIFF image "testje-131072.tiff" -- defaulting to 1 pixel per mm 
vips warning: vips_tracked: out of memory --- size == 48MB 

Crash

Любой получил ключ, что я мог сделать, чтобы быть в состоянии обработать изображение этого размера с помощью ВИПС? (Или любая другая библиотека?).

Я сам провел исследование и, похоже, нам нужно иметь BigTiff, я посмотрел исходный код VIPS и видел, что термин BigTiff используется несколько раз, поэтому я полагаю, что он должен поддерживаться?

Some information about the image: 
Width: 131072 
Height: 131072 
Chunks: 32x32 (4096x4096 each) 
Compression: LZW 

При открытии изображения в инструменте, таком как VLIV (Very Large Image Viewer) изображение открывается отлично.

+0

сколько памяти у вас есть? Какие окна это? 'x64'? является 'vips.exe' 32bit? некоторые причины: от win Vista и позже планировщик процессов сильно изменится, и теперь более старые программы, которые не реагируют на гораздо меньшие временные рамки, будут заморожены. вы можете попробовать запустить программу в режиме совместимости XP SP3 с выключенным расширенным файлом gfx, который когда-то помогает (предотвращает прекращение работы программы). Если у вас есть 32-битное приложение, то вы ограничены 4 или 2 ГБ памяти (зависит от используемого диспетчера памяти приложения), и распределение кусков выше 1 ГБ может быть проблемой иногда. – Spektre

+0

В этом случае попробуйте найти 64-битную версию приложения (если у вас 64-разрядная ОС грубо) или вырезать изображение на меньшие части. Поскольку это не вопрос программирования, я голосую за закрытие – Spektre

+0

Спасибо за ваш ответ :). Кажется, есть только 32-битная версия программы (у меня есть 32 ГБ памяти), поэтому я хотел бы «не закрывать» эту тему, потому что она не решена. Я разместил здесь свой вопрос, потому что LibVIPS - это программный пакет с открытым исходным кодом, который, похоже, имеет проблемы с чтением моего изображения. Я не вижу разницы между включением библиотеки в мой проект или прямым вызовом VIPS.exe. (Чтобы сделать мой вопрос как можно более простым и сосредоточенным, я решил использовать свою версию скомпилированной программы вместо использования своей библиотеки в моем собственном проекте). – Devedse

ответ

4

Я являюсь сопровождающим libvips. Бинарный файл vips.exe включает поддержку bigtiff и должен легко обрабатывать изображение такого размера. Трудно строить себя на Windows, возможно, на неделю, я бы не стал творить, если вы не очень опытные.

Я думаю, что проблема - это, вероятно, ваше входное изображение. Я думаю, что он использует очень большие плитки (4096 x 4096). libvips должен хранить две полные строки плиток в памяти, поэтому 4096 x 131072 x 3 x 2 пикселя, что сразу составляет 3 ГБ.

Я бы переделал исходное изображение. Используйте меньшие плитки, возможно, 512 x 512, и убедитесь, что вы пишете изображение большого размера. Пожалуйста, откройте проблему на трекере libvips, если у вас все еще есть проблемы, там легче отлаживать материал.

https://github.com/jcupitt/libvips/issues

Edit: есть теперь официальный 64-битная Windows, сборка libvips и vips.exe, это может помочь:

http://www.vips.ecs.soton.ac.uk/supported/current/win32/vips-dev-w64-8.1.1-2.zip

+0

А это объясняет много. Я уже слышал, что компиляция libvips на Windows была довольно сложной задачей. Я попытаюсь уменьшить размер плитки и воссоздать изображение, чтобы увидеть, что происходит потом. Может быть, немного оффтопик, но какая версия tiff использует libvips? Это 4.0.6 из http://www.remotesensing.org/libtiff/, который следует за спецификацией Tiff 6.0 или это что-то совсем другое? – Devedse

+0

Привет, windows vips построена следующим образом: https://github.com/jcupitt/build-win32 Здесь вы можете увидеть библиотеку tiff: https://github.com/jcupitt/build-win32/blob/master /8.1/vips.modules#L265 Итак, это libtiff 4.0.6. – user894763

 Смежные вопросы

  • Нет связанных вопросов^_^