我现在做的项目是一个数码摄像机性能测试工具,其中有采集图像并显示的功能。原先是用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上没有这个问题。