如何解决将位图从ARGB1555转换为RGB8888
| 现在有点脑子屁,但是我需要将图像从ARGB1555转换为RGB8888的帮助。 我已经有了遍历每个像素的循环(本质上是从文件中读取u16),并且我想将它们存储为u32。我想我只是使用一些二进制运算符来获取2-6、7-11和12-16位,然后使用另一个运算符以某种方式将每种颜色更改为其各自的RGB8888值...但是我真的不知道不知道该怎么做。解决方法
您没有说明要用什么语言编写,但是这里有一个C ++函数:
它采用ARGB1555中的16位整数,并返回ARGB8888中的32位整数
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);
}
参考:http://cboard.cprogramming.com/c-programming/118698-color-conversion.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。