阅读:1874回复:4
我在图像采集卡拉到的数据是RGB565的,请问如何显示在屏幕上???
不用directdraw
|
|
|
沙发#
发布于:2005-02-17 13:57
不用directdraw 那就用DC好了 但为什么不使用DirectDraw呢?哪个性能更好些 |
|
|
板凳#
发布于:2005-02-18 09:04
RBG565如果不做转换,可以用DC显示吗,给个例子或者告诉我用那些函数 :P
|
|
|
地板#
发布于:2005-02-18 10:50
RBG565如果不做转换,可以用DC显示吗,给个例子或者告诉我用那些函数 :P RGB565不就是16位的吗? 使用CreateCompatibleBitmap、CreateCompatibleDC创建位图和DC,然后使用SetDIBits就可以了呀,老大 |
|
|
地下室#
发布于: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讲的很详细,而且该书的电子版网上随处可见) |
|