chr*_*788 4 java video video-processing
我正在使用 Java 处理视频数据,并希望将四个 8 位整数存储在 32 位整数中。换句话说,我想将 0 到 255 之间的 R、G、B 和 A 值打包到一个 32 位整数中。
我该怎么办:
创建 4 个从 0 到 255 的整数值并将它们存储在 32 位整数中?
从 32 位整数中解包 4 个 8 位整数值?
谢谢!
包装:
int rgba = (a << 24) | (b << 16) | (g << 8) | r;
Run Code Online (Sandbox Code Playgroud)
<<
是左移运算符;|
是按位或运算符。
拆箱:
int r = rgba & 0xff;
int g = (rgba >> 8) & 0xff;
int b = (rgba >> 16) & 0xff;
int a = (rgba >> 24) & 0xff;
Run Code Online (Sandbox Code Playgroud)
>>
是(带符号 *)右移运算符;&
是按位与运算符。
显然,您可以按照您想要的任何顺序打包/解包它们。
(*) 您可以在此处使用有符号或无符号 ( >>>
) 右移。在这种情况下,这对结果没有影响。
归档时间: |
|
查看次数: |
4524 次 |
最近记录: |