2015-10-26 39 views
0

我目前正在研究一個項目,其中有3.9GB左右的圖像。我想創建一個谷歌地圖一樣查看該圖片(這是一件好事LibVIPS可以生成)通過執行以下命令:做一些這方面的警告顯示,當LibVIPS在處理時碰撞3.9gb tiff圖像

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

任何人都得到一個線索,我可以做些什麼,以便能夠處理這種規模使用VIP的形象? (或任何其他圖書館?)。

我自己做了一些調查,似乎我們需要有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' 32位?一些原因:從Vista以後,進程調度程序發生了很大的變化,現在較老的程序不會在較小的時間限制內響應,將會被凍結。您可以嘗試在XP SP3兼容模式下運行該程序,同時關閉某些時候可以幫助的高級gfx內容(防止程序停止工作消息)。如果你有32位的應用程序,那麼你只能使用4或2 GB的內存(取決於應用程序的內存管理器),而分配1GB以上的數據塊有時會出現問題。 – Spektre

+0

在這種情況下,嘗試找到64位版本的應用程序(如果你有64位操作系統的粗糙)或將圖像剪切成較小的部分。由於這不是一個編程問題,我投票結束 – Spektre

+0

感謝您的回答:)。似乎只有一個32位版本的程序(儘管我有32GB內存),我想「不關閉」這個主題的原因是因爲它沒有解決。 我在這裏發佈我的問題,因爲LibVIPS是一個開源軟件包,似乎有閱讀我的形象問題。在我的項目中包含庫或直接調用VIPS.exe時,我並沒有真正看到區別。 (爲了讓我的問題儘可能簡單和專注,我選擇使用他們的編譯程序版本,而不是在我自己的項目中使用他們的庫)。 – Devedse

回答

4

我是libvips維護者。 vips.exe二進制文件包含bigtiff支持,應該很容易處理這個大小的圖像。在Windows上構建自己很有挑戰性,也許是一週的工作,除非你非常專業,否則我不會試圖自己創造自己。

我認爲這個問題可能是您的輸入圖像。我認爲這是使用非常大的瓷磚(4096 x 4096)。 libvips不得不在存儲器中保留兩行完整的磁貼,因此4096 x 131072 x 3 x 2像素,即3GB。

我會重拍你的源圖片。使用更小的瓷磚,可能是512 x 512,並確保你正在寫一個重要的圖像。如果你仍然有問題,請在libvips跟蹤器上打開一個問題,這樣更容易在那裏調試。

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

編輯:現在有libvips和vips.exe的一位官員64位Windows的構建,它可能會幫助:

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

+0

啊這解釋了很多。我確實已經聽說在Windows上編譯libvips是一個很大的挑戰。我將嘗試減小拼貼大小並重新創建圖像以查看會發生什麼。 也許有點偏離主題,但libvips使用什麼樣的tiff版本?是來自http://www.remotesensing.org/libtiff/的4.0.6,它遵循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