读书人

图像旋转失败!解决方案

发布时间: 2012-02-05 12:07:14 作者: rapoo

图像旋转失败!
用IDirectDrawSorface::Blt复制1个表面到另外一个表面。
大致代码如下:

DDBLTFX ddbltfx;
memset(&ddbltfx,0,sizeof(ddbltfx));
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwDDFX = DDBLTFX_ROTATE90; //这里给个0就出错,给个角度就失败
m_hr = m_pInnerDDSBuffer-> Blt(&rcNew, m_pOuterDDSBuffer, &rcNew, DDBLT_WAIT|DDBLT_DDFX, &ddbltfx);

不指—DBLT_DDFX参数或者角度给个0时复制成功,否则出错。
听说旋转需要显卡支持,我的显卡是集成的,估计不支持。

请问:
1,如何判断显卡是否支持旋转
2,如果硬件不支持,如何高效率的旋转图片?(要支持90、180、270度旋转)。我目前只会采取GDI逐点绘制的办法,那样效率不好感觉。。。

[解决办法]
GDI怎么做?
[解决办法]
GDI+可以,很容易

读书人网 >VC/MFC

热点推荐