你有GIF的开发许可吗?PrecSubclassWindow 以及 MFC 中的 EOF
2009-02-21 20:00:10 来源:WEB开发网好啦,好啦。你并不想让你的客户扭到脖子而且也想完善类的功能,让我们来解决这个问题。旋转图像的一个方法是自己绘制像素。也就是,在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+ 旋转图像(如图 二)。
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››开发移动 Web Ajax 应用
- ››开发者眼中的iPhone与Android
- ››开发者或想使用的10个Android2.2新特性
- ››开发实例:Android 身高计算器的实现
- ››开发 Derby 的表功能
- ››开发火爆 博看文思称 iPhone 可作\血压计\
- ››开发 Hello World Android 应用程序
更多精彩
赞助商链接