android rgb数组,Android – 将字节rgb_565数组转换为argb或rgb数组

我在字节rgb_565数组中有图片数据,我希望以高效的方式将其转换为argb数组.现在我发现只有一种(慢速)方法:

Bitmap mPhotoPicture = BitmapFactory.decodeByteArray(imageData, 0 , imageData.length);

其中imageData是我在rgb_565中的byte []数组,然后:

int pixels[] = new int[CameraView.PICTURE_HEIGHT*CameraView.PICTURE_WIDTH];

mPhotoPicture.getPixels(pixels, 0,PICTURE_WIDTH, 0, 0, PICTURE_WIDTH, PICTURE_HEIGHT);

关键是我认为创建一个Bitmap对象是严格的,在这种情况下不是必需的.还有其他更快的方法将rgb_565数组转换为argb数组吗?

我需要这个,因为在rgb_565数组上进行图像处理似乎有点烦人.或者也许不是很难?

解决方法:

你为什么不手工做?一张桌子在我的体验中最快:

C代码:

static unsigned char rb_table[32];

static unsigned char g_table[64];

void init (void)

{

// precalculate conversion tables:

int i;

for (i=0; i<32; i++)

rb_table[i] = 255*i/31;

for (i=0; i<64; i++)

g_table[i] = 255*i/63;

}

void convert (unsigned int * dest, unsigned short * src, int n)

{

// do bulk data conversion from 565 to rgb32

int i;

for (i=0; i

{

unsigned short color = src[i];

unsigned int red = rb_table[(color>>11)&31]<<16;

unsigned int green = g_table[(color>>5)&63]<<8;

unsigned int blue = rb_table[color&31];

dest[i] = red|green|blue;

}

}

标签:android,image-processing,image-manipulation

来源: https://codeday.me/bug/20190607/1191832.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值