不知道各位有咩有被这个函数搞得很蛋疼,反正我是了,网上的文章很多其实都是到处copy,看了很多然并卵。
这个函数的功能和参数就不多说了,蛋疼主要是它画的图片是倒着的,主要问题是怎么把他搞回来。
网上的文章说了 当目标宽度和源宽度的符号不一样他会做关于x轴的镜像,高度的符号不一样会做Y轴的镜像。好的我的开始函数是这样的
StretchDIBits(bufferHDC,0,0,m_nVideoW,m_nVideoH,0,0,m_nVideoW, m_nVideoH,szFrame,&BmpInfo,DIB_RGB_COLORS,SRCCOPY);//画出倒的图片
然后我改了下
StretchDIBits(bufferHDC,0,0,0-m_nVideoW,0-m_nVideoH,0,0,m_nVideoW, m_nVideoH,szFrame,&BmpInfo,DIB_RGB_COLORS,SRCCOPY);
发现啥都没了 不是应该画出来吗
仔细想了下如果宽是 -m_nVideoW 那其实坐标是不是应该改一下 不然画到哪里去了是吧 不管试下
::StretchDIBits(bufferHDC,m_nVideoW,m_nVideoH,0-m_nVideoW,0-m_nVideoH,0,0,m_nVideoW, m_nVideoH,szFrame,&BmpInfo,DIB_RGB_COLORS,SRCCOPY);
哈哈发现出来了 正了