簡體   English   中英

從ARGB BufferedImage獲取RGBA像素?

[英]Get RGBA pixels from ARGB BufferedImage?

有沒有一種簡單的方法可以從argb BufferedImage獲取rgba int[] 我需要將其轉換為opengl,但是我不想遍歷像素數組並自己進行轉換。

OpenGL 1.2+支持GL_BGRA像素格式和反向打包像素。

從表面BGRA並不像您想要的,但讓我解釋一下。

glTexImage2D (...)類的調用執行所謂的像素傳輸,涉及打包和解包圖像數據。 在像素傳輸過程中,可能會執行數據轉換,可能會遵循特殊的對齊規則,等等。 除了明顯的RGBA組件順序之外,您還可以采用多種不同的布局傳輸像素。

如果將字節順序( 例如,數據類型= GL_UNSIGNED_INT_8_8_8_8_REV )與GL_BGRA格式一起GL_BGRA ,則可以有效地傳輸ARGB像素,而無需您付出任何實際努力。

示例glTexImage2D (...)調用:

glTexImage2D (..., GL_BGRA, GL_UNSIGNED_INT_8_8_8_8_REV, image);

_REV打包數據類型的通常用例是處理不同處理器之間的字節序差異,但是當您想要反轉圖像中組件的順序時,它也很方便(因為沒有GL_ARGB這樣的東西)。

不要為OpenGL轉換內容-它完全有能力單獨執行此操作。

為了在argb和rgba之間轉換,您可以應用“按位移位”,以快速簡潔的格式來回轉換它們。

argb = rgba <<< 8

rgba = argb <<< 24

如果您還有其他問題, 本主題可能會為您提供有關在rgba和argb之間進行轉換的更深入的答案。

另外,如果您想進一步了解Java的按位運算符, 請查看此鏈接

暫無
暫無

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

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