每个像素用48位表示,怎样取出每个通道的值?

joejph 2008-02-22 02:11:56
一张png格式的图片,像素格式是Format48bppRgb也就是r,g,b各16位表示。直接用Getpixel取出来的值的范围是0~255,要怎样才能取出16位完整的值呢?
谢谢!
...全文
157 12 打赏 收藏 举报
写回复
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
joejph 2008-02-28
  • 打赏
  • 举报
回复
png格式的如果是24位或32位的话,lockbits也可以像bitmap一样操作。
hndxh3000 2008-02-28
  • 打赏
  • 举报
回复
png格式的图片我没试过,不过jpg格式的图象用opencv载入后,对内存操作可以象bmp图一样
joejph 2008-02-27
  • 打赏
  • 举报
回复
这个时候的确是个bitmap的对象,但它的格式与普通的bitmap不同,仍然能够得出它的pixelforamt是Format48bppRgb,而且stride是等于 宽度 × 6的。
lake_cx 2008-02-27
  • 打赏
  • 举报
回复
你用lockbits的时候已经是Bitmap了吧
joejph 2008-02-26
  • 打赏
  • 举报
回复
png格式的图片就会有这种图片,用lockbits之类的方法取得内存地址,得出的结果还是不对,不晓得有什么其他的库可以支持这个不?
hndxh3000 2008-02-26
  • 打赏
  • 举报
回复
我的建议是:
既然不是常用的位数,那使用这种格式的人应该了解具体的每个像素数据格式

直接用指针指向首地址,要调值加上偏移量就行了
菜牛 2008-02-26
  • 打赏
  • 举报
回复
这个格式Windows的API是不支持的,所以只有自己直接从数据中按照格式来取。
lake_cx 2008-02-22
  • 打赏
  • 举报
回复
貌似24位色已经是真彩色了,一般的ARGB由于有Alpha通道,才需要更多的位数,而你的Png是Format48bppRgb的,所以RGB各位的值应该只是预留而已。
joejph 2008-02-22
  • 打赏
  • 举报
回复
前面加0是啥子意思呢?
lake_cx 2008-02-22
  • 打赏
  • 举报
回复
前面加0
joejph 2008-02-22
  • 打赏
  • 举报
回复
是个Color 但是这个Color里的R,G,B值只是一个0~255的值
lake_cx 2008-02-22
  • 打赏
  • 举报
回复
GetPixel返回的不是个Color么?
相关推荐
发帖
图形处理/算法

1.9w+

社区成员

VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
帖子事件
创建了帖子
2008-02-22 02:11
社区公告
暂无公告