各位大虾,小弟在编写DirectDraw程序时,想对我的一个bmp图像进行一下旋转后在blt上去!但是总是不显示!是什么原因!请各位大虾指点指点!
我先将bmp图像与一个surface联系起来,然后再blt之前声明一个DDBLTFX变量fx,对这个fx变量初始化,设置一个旋转角度,及旋转属性,然后blt到我的前台页面,可就是不显示?????
我先将bmp图像与一个surface联系起来,然后再blt之前声明一个DDBLTFX变量fx,对这个fx变量初始化,设置一个旋转角度,及旋转属性,然后blt到我的前台页面,可就是不显示?????
xcenter = (right - left + 1) / 2 + left;
ycenter = (bottom - top + 1) / 2 + top;
x′ = (x0 - xcenter) cosθ - (y0 - ycenter) sinθ + xcenter;
y′ = (x0 - xcenter) sinθ + (y0 - ycenter) cosθ + ycenter;
与图像的镜像变换相类似,也采用按行逐点变换的方式实现图像的旋转,其步骤如下:
(1) 用getimage()把图像保存到内存缓冲区,并擦除原图像。
(2) 计算图像高度height,宽度width,及保存一行图像信息占用的字节数linebytes,计算公式与镜像变换的计算公式相同。
(3) 对图像逐行进行旋转变换。
(4) 释放内存图像缓冲区。
值得指出的是,这种处理方法不够。为此可以采用另一种方法:先在图像变换缓冲区中处理完毕后,再将变换后的图像一次显示在屏幕上。这样可以取得较好的显示效果。