我有一個字節[],我使用OpenKinect從Kinect中捕獲,它是Java JNA包裝。我想知道是否有任何現有的庫可用於將RGB數據的byte []轉換爲可以顯示/存儲的圖像?將RGB數據的byte []轉換爲圖像
1
A
回答
2
爪哇的BufferedImage
是一個很好的候選。
我會找到你的byte[]
的顏色編碼方案,並將其轉換爲一個int[]
接受的設置BufferedImage
的RGB陣列setRGB()javadoc。然後,您可以將圖像以各種格式保存到磁盤,或者渲染以供顯示。
1
可以將byte[]
RGB數據轉換成int[]
其中每個INT編碼ARGB像素(α,紅,綠,藍)。然後使用下面的代碼創建一個BufferedImage
int[] pixels = new int[width * height];
// do the conversion byte[] => int[]
BufferedImage img = new BufferedImage(width, height, BufferedImage.TYPE_INT_ARGB);
img.setRGB(0, 0, width, height, pixels, 0, width);
然後可以使用ImageIO的保存圖像:
File outputFile = new File("image.png");
ImageIO.write(img, "png", outputFile);
或繪製例如圖像中的一個JComponent的paint方法:
public void paint(Graphics graphics){
Graphics2D g = (Graphics2D)graphics;
g.drawImage(img, 0, 0, img.getWidth(), img.getHeight(), null);
}
有關詳細信息,請參閱相關的JavaDoc。即使您根本不使用任何字母,BufferedImage.TYPE_INT_ARGB
通常是最快的圖像編碼(至少在Mac OS X和Windows上是前一陣子)。
聲明:代碼示例尚未經過測試。
相關問題
- 1. 如何將圖像(BYTE *)轉換爲Base64
- 2. pdfbox將pdf轉換爲圖像byte []
- 3. 將圖像byte []轉換爲文件
- 4. 手動將RGB RGB圖像轉換爲灰度圖
- 5. 將SDP數據從byte []轉換爲Object?
- 6. 將圖像轉換爲RGB爲圖像功能
- 7. 如何將索引圖像轉換爲C#中的RGB圖像?
- 8. 將RGB圖像轉換爲RGB 16位和8位
- 9. 如何將灰度圖像轉換爲RGB圖像?
- 10. 使用matplotlib將灰度圖像轉換爲RGB熱圖像
- 11. 使用python PIL將RGB圖像轉換爲純黑白圖像
- 12. 將圖像從Triclops轉換爲opencv RGB圖像。
- 13. Opencv:將色調圖像轉換爲RGB圖像
- 14. 如何將RGB byte []切片轉換爲image.Image進入?
- 15. 轉換所有圖像爲RGB傳輸
- 16. 轉換爲灰度圖像到RGB
- 17. 轉換灰度圖像爲RGB
- 18. 將像素值轉換爲RGB格式
- 19. 如何轉換4d RGB圖像數據爲2d陣列LogisticRegression
- 20. 如何將位圖轉換爲圖像<Bgr, Byte>
- 21. 將BLOB數據轉換爲圖像
- 22. 如何將數據轉換爲圖像?
- 23. 將byte []轉換爲UInt16。
- 24. C# - 將uint轉換爲byte []
- 25. 在VB中將位圖轉換爲RGB
- 26. ImageMagick - 使用Python中的ICC將圖像RGB轉換爲CMYK
- 27. 將合併的RGB圖像轉換爲灰度OPENCV ANDROID
- 28. 將圖像的顏色空間從RGB轉換爲HSV
- 29. PIL:將RGB圖像轉換爲特定的8位調色板?
- 30. MATLAB:將RGB圖像轉換爲Lab顏色空間的算法
可能的重複 - http://stackoverflow.com/questions/1143293/how-to-convert-array-of-bytes-into-image-in-java-se – mre 2012-02-15 18:43:17