Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:1845回复:4

我在图像采集卡拉到的数据是RGB565的,请问如何显示在屏幕上???

楼主#
更多 发布于:2005-02-17 12:32
不用directdraw
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2005-02-17 13:57
不用directdraw

那就用DC好了
但为什么不使用DirectDraw呢?哪个性能更好些
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
Xman
驱动大牛
驱动大牛
  • 注册日期2001-08-24
  • 最后登录2011-10-07
  • 粉丝0
  • 关注0
  • 积分343分
  • 威望127点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-02-18 09:04
RBG565如果不做转换,可以用DC显示吗,给个例子或者告诉我用那些函数 :P
[img]http://www.driverdevelop.com/forum/upload/Xman/2004-04-05_2004324183110706.jpg[/img]
AllenZh
驱动老牛
驱动老牛
  • 注册日期2001-08-19
  • 最后登录2015-11-27
  • 粉丝19
  • 关注10
  • 积分1316分
  • 威望2387点
  • 贡献值7点
  • 好评度321点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-02-18 10:50
RBG565如果不做转换,可以用DC显示吗,给个例子或者告诉我用那些函数 :P

RGB565不就是16位的吗?
使用CreateCompatibleBitmap、CreateCompatibleDC创建位图和DC,然后使用SetDIBits就可以了呀,老大
1,承接Windows下驱动/应用开发 2,本人原创虚拟鼠标/键盘,触摸屏,虚拟显卡,Mirror驱动,XP无盘的SCSI虚拟磁盘驱动等 3,windows下有尝技术服务(包括BUG调试,员工培训等) 欢迎深圳和海外企业联系.msn:mfczmh@sina.com
zyl910
驱动牛犊
驱动牛犊
  • 注册日期2005-02-20
  • 最后登录2006-09-28
  • 粉丝0
  • 关注0
  • 积分50分
  • 威望5点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-02-21 20:47
有三种方法:

1.用SetDIBitsToDevice、StretchDIBits绘制DIB
参数应该好理解
主要是填充好BITMAPINFOHEADER结构的问题
因为16位DIB默认是555格式
要想使用565格式的DIB
必须先将BITMAPINFOHEADER.biCompression设为BI_BITFIELDS
再在BITMAPINFOHEADER结构后面添上RGB分量的掩码

2.使用DIBSection
如果你的图像大小与颜色格式不会发生变化的话,用DIBSection是最方便的
事先使用CreateDIBSection创建DIBSection(注意BITMAPINFOHEADER结构问题),并选入DC
具体显示图像时:
将图像数据复制到CreateDIBSection的ppvBits参数返回的地址
然后可以直接用BitBlt等GDI函数绘制图像

3.使用SetDIBits将DIB图像数据设置到HBITMAP
事先使用CreateCompatibleBitmap创建与你的图像一样宽的HBITMAP
具体显示图像时:
使用SetDIBits将DIB图像数据设置到HBITMAP(注意BITMAPINFOHEADER结构问题)
现在那个HBITMAP中的图像就是你的图像了,你像怎么显示就怎么显示


API函数参考可以看MSDN
关于DIB位图处理可以看Charles Petzold的Programming Windows(对DIB讲的很详细,而且该书的电子版网上随处可见)
游客

返回顶部