从BGR到RGB?怎样将位图的数据颠倒?[菜鸟提问]

railgunman 2007-11-20 07:18:12
各位高手:
  我写了一个读位图的程序,其中,定义了一个byte *的指针来读取位图数据,因为BMP数据区保存的第一个象素是图片左下角的象素。整个图片上下颠倒的。而我想把bmp的数据区反过来存储,也就是说第一个像素是图片的左上角的数据,该如何做呢?另外,在windows中位图的每个象素是以是BGR保存的,而我想保存成RGB的格式。该如何做?
...全文
932 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
BBirdlyh 2007-11-21
  • 打赏
  • 举报
回复
如果能得到位图的数据的话,剩下的就是数组操作和位操作
需要主意的是,根据不同的象素深度可能BGR->RGB的转化方法有不同比如24位的就直接互换相邻的3个字节的1.3字节,若是16位的就需要首先取2个相邻的字节然后进行位操作
另外,如果图片不太大的话,可以考虑直接通过CDC::GETPIXEL来作,图片小的话,效率不会太低
railgunman 2007-11-21
  • 打赏
  • 举报
回复
我晕哦。
bobob 2007-11-21
  • 打赏
  • 举报
回复
为什么要倒过来?如果只是想反转图片,把高度设成负数就可以了

rgb和bgr互转,我不觉得有什么值得探讨的地方?
laoma_hbu 2007-11-21
  • 打赏
  • 举报
回复
没有必要倒过来存储吧
你取值时候从图片的左上角开始取不就行了
railgunman 2007-11-20
  • 打赏
  • 举报
回复
help
railgunman 2007-11-20
  • 打赏
  • 举报
回复
不好意思,我是菜鸟。
高手啊,具体怎么做啊?
能否给点代码?
zxbstrong 2007-11-20
  • 打赏
  • 举报
回复
CreateDIBSection
然后直接对数据区进行字节级操作

19,469

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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