argb888与rgb888转换程序,从ARGB1555位图转换为RGB8888

Having a bit of a brain fart right now, but I'm needing help converting an image from ARGB1555 to RGB8888.

I already have the loop that goes through each of the pixels (reads u16s from a file essentially), and I would like to store them as a u32 instead. I'd suppose I would just use some binary operator to get the 2-6, 7-11, and 12-16 bits, then use another operator to somehow change each color to their respective RGB8888 value... but I really don't know how to do this.

解决方案

You didnt state what language you are writing it in but here is a C++ function for it:

It takes the 16 bit integer in ARGB1555 and returns a 32 bit integer in ARGB8888

unsigned int ARGB1555toARGB8888(unsigned short c)

{

const unsigned int a = c&0x8000, r = c&0x7C00, g = c&0x03E0, b = c&0x1F;

const unsigned int rgb = (r << 9) | (g << 6) | (b << 3);

return (a*0x1FE00) | rgb | ((rgb >> 5) & 0x070707);

}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值