图片的合并与分解
2009-04-19 20:03:26 来源:WEB开发网2、初始化和释放GDI+ 调用
首先定义一个ULONG_PTR的成员变量 m_gdiplusToken ,这是一个DWORD数据类型,该成员变量用来保存GDI+ 被初始化后在应用程序中的GDI+ 标识,以便能在应用程序退出后,引用该标识来调用Gdiplus:: GdiplusShutdown来关闭GDI+。细节请参考CBmp2MApp里的相关代码。
ULONG_PTR m_gdiplusToken; //GDI+
然后在 BOOL CBmp2MApp::InitInstance() 里开始初始化 GDI+ 环境。
//初始化GID+
GdiplusStartupInput gdiplusStartupInput;
GdiplusStartup( &m_gdiplusToken,&gdiplusStartupInput,NULL );
最后,在int CBmp2MApp::ExitInstance()里,我们来释放GDI+ 的调用。注意:在向导生成的缺省项目中,这个函数是没有的,我们需要重载它。在类视图里选择CBmp2MApp,然后在属性里点重写,就可以看到。(是不是太罗嗦了^_^)
int CBmp2MApp::ExitInstance()
{
//释放GDI+ 调用
GdiplusShutdown( m_gdiplusToken );
return CWinApp::ExitInstance();
}
3、图片的分解
分解一张图为多张,这是程序的缺省模式。如源码中的注释,我只考虑了横向分解,没有考虑纵向的情况,也没有考虑智能的获取图片的尺寸问题,缺省就是16*16,如果你的图片是32*32或其他的模式,请手动更改。但你点击选择文件,成功选择一个合适的图片文件之后,界面应该是下图所示的样子。如果不想改变拆分图片的存储路径,你可以直接点确定了,不出意外的话,会打开一个文件夹界面,然后里边有N张存储成功可供使用的图片了。
核心函数就是下面的这个:
更多精彩
赞助商链接