我现在做的项目是一个数码摄像机性能测试工具,其中有采集图像并显示的功能。原先是用GDI做的,后来领导希望降低CPU使用率,我就把显示的部分改用Direct3D9实现。要求比较简单,如下所示:
1. 从摄像机采集到的数据,不管什么类型(黑白、RGB、YUV),一律转换成32位的RGB,所以显示部分只需要考虑32位的RGB图像
2. 有些型号的摄像机感光元件尺寸较大,所以图像用ScrollView表示,要可以滚动
3. 图像可以放大缩小显示,只要求提供25%、50%、100%、200%、400%四种比例
4. 为了做信息统计,需要在图像上画一些直线、矩形和圆因为对Direct3D9不熟悉,就一边摸索一边前进,遇到搞不定的就用一些笨办法绕过去。但是现在有两个问题未能解决,希望能得到大家的帮助:
问题1. 图像显示的过程中,如果按下Ctrl+Alt+Delete组合键,弹出Windows的系统对话框,再取消回到自己的程序,画面就一片空白了,线条也不能显示。经过调试,发现图像数据没有问题。如果重新创建Direct3D9设备,显示就没有问题。
问题2. 我的电脑接了两台显示器,在显示器2上用25%和50%比例显示的时候,图像不正常,25%的情况下,左侧一部分图像不能显示;50%的情况下,左右两侧各有一部分图像不能显示。显示器1上没有这个问题。
1. 从摄像机采集到的数据,不管什么类型(黑白、RGB、YUV),一律转换成32位的RGB,所以显示部分只需要考虑32位的RGB图像
2. 有些型号的摄像机感光元件尺寸较大,所以图像用ScrollView表示,要可以滚动
3. 图像可以放大缩小显示,只要求提供25%、50%、100%、200%、400%四种比例
4. 为了做信息统计,需要在图像上画一些直线、矩形和圆因为对Direct3D9不熟悉,就一边摸索一边前进,遇到搞不定的就用一些笨办法绕过去。但是现在有两个问题未能解决,希望能得到大家的帮助:
问题1. 图像显示的过程中,如果按下Ctrl+Alt+Delete组合键,弹出Windows的系统对话框,再取消回到自己的程序,画面就一片空白了,线条也不能显示。经过调试,发现图像数据没有问题。如果重新创建Direct3D9设备,显示就没有问题。
问题2. 我的电脑接了两台显示器,在显示器2上用25%和50%比例显示的时候,图像不正常,25%的情况下,左侧一部分图像不能显示;50%的情况下,左右两侧各有一部分图像不能显示。显示器1上没有这个问题。
解决方案 »
- 急救急救。。。。VC中怎么将串口的数据用TeeChar控件实时显示?
- 关于VC中热键弹起的问题
- 在调试程序时,总出现Find Source对话框
- 火线求援?
- 急,如何在VC6下编译开源的代码,只有Makefile如何编译
- 最简单的关于CRgn的问题!
- 菜菜问题, define SIG_ERR (void (*)()) -1 是什么意思啊?
- 又是调试惹的祸!!!!
- 我用鼠标在对话框中画图标,但是...
- 如何在OnAccept()里为每一个传入的Socket建立一个新线程,然后在线程里Accept?
- 请教如何用VC编写IIS插件
- 为何使用GetOpenFileName()时 定义OPENFILENAME ofn;时 报错undeclared identifier
图像是实时采集显示的,因为摄像机是工业用的,和民用的有些不同,有些型号DirectShow不支持,所以没有采用DirectShow