您的位置:程序门 -> vc/mfc -> 图形处理/算法



为什么用drawdibdraw()函数显示的图像是上下颠倒的


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


为什么用drawdibdraw()函数显示的图像是上下颠倒的[已结贴,结贴人:potatoli]
发表于:2007-04-19 09:53:12 楼主
我在做的程序是从摄像机采集数据,在pc上显示。
目前做法是把采集到的raw   data转换为rgb   data(每个像素4个字节),再用bitblt函数和stretchblt函数显示出来。
因为stretchblt函数效率不高,现在想改用drawdibdraw()函数,但是用drawdibdraw()函数显示的图像却是上下颠倒的,把高度设为负值也不行,现在只能采取转换的时候倒着转换的方法解决。
请问上下颠倒的原因是什么,怎么解决这个问题。
发表于:2007-04-19 10:19:201楼 得分:10
代码。drawdibdraw函数高度是要用负值的。
发表于:2007-04-19 10:31:312楼 得分:0
一共有3个高度值:   结构bitmapinfoheader的biheight,drawdibdraw函数的dydst和dysrc
请问是不是这3个高度值都要用负值。
发表于:2007-04-20 11:59:583楼 得分:10
那时显示的问题,实际内存中数据还是正的。想看实际显示效果可以用图像高度减计算得出的坐标的。
发表于:2007-04-20 15:26:474楼 得分:0
原因似乎是因为从相机采集到的数据是ddb的,而drawdibdraw函数是用来显示dib的,把ddb数据转换成dib之后图像就正过来了。但是因为多了转换的步骤,程序执行的效率也没有明显的提高。
请问有什么高效率的直接显示ddb图像数据的方法。
发表于:2007-04-20 16:16:035楼 得分:10
api内部实现的问题,只能调换
发表于:2007-04-20 16:23:086楼 得分:10
根据缩放比例   抽取部分数据显示
发表于:2007-04-22 21:57:207楼 得分:0
请问ddb图像是不是一定要转换成dib才能显示阿。
发表于:2007-04-23 11:00:548楼 得分:10
bitmapinfo不正确,   将调度置为原来的负值。
发表于:2007-04-23 13:11:079楼 得分:0
都试过了,drawdibdraw函数的dydst和dysrc置为负数没有效果,还是颠倒的。结构bitmapinfoheader的biheight置为负数后不能显示图像。


快速检索

最新资讯
热门点击