RGB24 转 ARGB8888

HongMenzhouxiangang 2010-11-12 03:48:57
如题!
...全文
554 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DrSmart 2010-11-19
  • 打赏
  • 举报
回复
还没解决啊,24和32的差别就是少个alpha通道,rgba中,将a填充为255就行了,如果你逐像素转的话,我在上面回复的直接用api转更方便啊
  • 打赏
  • 举报
回复
public void RGB24ToRGB32(int[] out, byte[] fg, int width, int height)
{
int i;
for (i = 0; i < height*width; i ++) {
int B = fg[i*3];
if (B < 0)
B = 0;
else if (B > 255)
B = 255;
int G = fg[i*3+1];
if (G < 0)
G = 0;
else if (G > 255)
G = 255;
int R = fg[i*3+2];
if (R < 0)
R = 0;
else if (R > 255)
R = 255;
out[i++] = 0xFF000000 + (B << 16) + (G << 8) + R;
}
}

看看这个转换对不对?
  • 打赏
  • 举报
回复
我是解码后的输出是byte的数组。直接移位啊?
DrSmart 2010-11-13
  • 打赏
  • 举报
回复
static Bitmap createBitmap(int width, int height, Bitmap.Config config) 这个方法,最后一个参数,可以设置类型 枚举值有

Bitmap.Config ALPHA_8
Bitmap.Config ARGB_4444
Bitmap.Config ARGB_8888
Bitmap.Config RGB_565
freshui 2010-11-12
  • 打赏
  • 举报
回复
这是最简单的转换了,一次处理三个字节放到一个int中,然后这个int | 0xFF000000, 让他变成四个字节即可。自己写下吧

80,488

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧