1
我在考慮將任意整數數組數據嵌入到圖像文件中。將整數數組編碼爲圖像的策略
我很好奇,看看我的數據看起來像:-)
這是一些浮現在腦海的問題:
- 什麼是允許的整數範圍轉換? (我的整數在0和Integer.MAX_VALUE之間)。
- 如何處理0到Integer.MAX_VALUE 到 8位ARGB整數範圍?
- 這無損圖像格式(PNG?)
- 難道這樣的庫已經存在?
- 我也需要解碼數據。 :)
我在考慮將任意整數數組數據嵌入到圖像文件中。將整數數組編碼爲圖像的策略
我很好奇,看看我的數據看起來像:-)
這是一些浮現在腦海的問題:
這是相當簡單的,因爲當你應對Java的一個BufferedImage,每個像素被存儲(或者至少訪問)作爲一個int本身。如果圖像是ARGB(32位),則可以使用所有的值。任何無損圖像格式都可以。
int[] array = new int[100];
final BufferedImage im = new BufferedImage(array.length, 1, BufferedImage.TYPE_INT_ARGB);
for (int i = 0; i < array.length; i++)
im.setRGB(i, 0, array[i]); // NOTE: this is probably optimizable
雖然ARGB存儲詮釋值無損,值得強調不使用32位將截斷在'setRGB'給出的數據的圖像類型,所以通過'getRGB'返回的數據可以是不同的中間體所以一定要使用ARGB(如@Bart和OP建議) – Atreys 2011-06-16 19:42:58