WEB开发网
开发学院软件开发VC 你有GIF的开发许可吗?PrecSubclassWindow 以及 M... 阅读

你有GIF的开发许可吗?PrecSubclassWindow 以及 MFC 中的 EOF

 2009-02-21 20:00:10 来源:WEB开发网   
核心提示: 好啦,好啦,你有GIF的开发许可吗?PrecSubclassWindow 以及 MFC 中的 EOF(5),你并不想让你的客户扭到脖子而且也想完善类的功能,让我们来解决这个问题,我在2001年10月专栏文章 ImgView 程序的基础上重新写了一个新程序,ImgView2,旋转图像的一个方

好啦,好啦。你并不想让你的客户扭到脖子而且也想完善类的功能,让我们来解决这个问题。旋转图像的一个方法是自己绘制像素。也就是,在x,y空间中用一个矩阵变换来达到旋转的效果。

  cos A -sin A
  
  sin A cos A

这个变换(如果你还记得这些高中三角学或是大学线性代数所学过的知识点的话)的意思是如果有一个点的坐标为(x,y),旋转后的坐标为(x*cos(A) + y*sin(A), -x*sin(A) + y*cos(A)),这里的A用弧度表示(2π 弧度 = 360角度)。所以只要加载位图,把它选入设备上下文,然后像上面所说的调用 GetPixel 和 SetPixel 进行所有像素的绘制,最后神奇般地你旋转了图像。旋转90度,180度或-90度似乎不是很难,因为 sin 和 cos 计算的结果是+/-1或0。

不过,我知道你在想什么。“额滴个神啊……请别叫我这么做!一定还有更好的办法!”你猜对了。使用 GDI+ 让你不用再郁闷旋转的事了。你在阅读MSDN杂志方面已经落后了很多年(我知道时间过得很快),GDI+是GDI图形库的增强版,可以通过C++使用。GDI+内建在Windows XP和Microsoft .NET中,但是为 Windows 98,Windows NT 和 Windows 2000 提供了可以重新分发的版本。( 详情请查看http://www.microsoft.com/msdownload/ platformsdk/sdkupdate/psdkredist.htm.)

GDI+是一个 C++ API。它使用 C++ 类和方法。为了使用 GDI+,你应该 #include <gdiplus.h>,在工程中链接 gdiplus.lib,这些都是最新 Windows SDK 的一部分。GDI+的知识远远超过 本专栏文章所涉及的内容。然而,我在2001年10月专栏文章 ImgView 程序的基础上重新写了一个新程序,ImgView2,来展示如何使用 GDI+ 旋转图像(如图 二)。

上一页  1 2 3 4 5 6 7 8  下一页

Tags:GIF 开发 许可

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接