簡體   English   中英

隨機存取圖像(圖片)文件

[英]Random access image (picture) file

是否有允許隨機訪問其部分的文件格式(圖像文件)。 例如,我有一個分辨率為100000x100000像素的巨大圖像文件,我只想閱讀一小部分。 就像具有縮放級別的地理地圖。

我想用Java編寫一些應用程序。 我可以使用數百個小文件,然后以某種方式組合它們,但是如果有一個方法可以處理一個大文件(或幾個大文件),那就更好了。

您執行此操作的能力將取決於用於圖片的文件格式。 原則上,非壓縮文件格式(如BMP或TIFF)將使您在讀取特定區域時具有更大的自由度。

好消息是,您有一個標准的Java類(請參見ImageReader ),該類允許您通過指定感興趣的區域來完全完成您要查找的內容(請參見3.3.1 ImageReadParam)。

但是,正如我之前所說,這將取決於您的圖像格式。 在ImageReader類本身上,您有一個名為'isRandomAccessEasy'的便捷方法, 如果給定圖像的存儲格式對像素的隨機訪問沒有任何固有的障礙,則該方法將返回true官方文檔中的詳細內容 )。

但如果有一個方法可以處理一個大文件,那就更好了

我不這么認為。 正如Manuel所說,訪問壓縮圖像的隨機位置很復雜,因為大多數壓縮算法都會考慮整個圖像以最大化壓縮能力。 因此,解壓縮過程將使用大量內存來解壓縮此大小的圖像。

另一方面,不壓縮文件的大小將增加幾個數量級。

我認為您應該使用與Google Maps或Zoompy之類的工具相同的方法。 拍攝原始的巨大圖像並將其分解為圖塊。 通過這種方式,可以壓縮圖塊,並且可以使用更少的內存來執行可視化。

紋理壓縮

看看紋理壓縮格式,該格式既可以壓縮也可以隨機訪問,以減少用於3D渲染的GPU紋理上圖像使用的帶寬https://en.wikipedia.org/wiki/Texture_compression

與常規圖像壓縮算法不同,紋理壓縮算法針對隨機訪問進行了優化。

以下格式似乎是開放的:

ARM Mali AFBC是一個(專有的)示例https://www.arm.com/products/graphics-and-multimedia/mali-technologies

隨機訪問低至4x4塊級別

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM