Windows Mobile项目中使用DLL加载图片
2012-05-17 16:29
274 查看
图形编程并不是游戏的专利,在普通的应用程序中也会经常用到背景图、图标、Icon等。
最初,使用图片时都是直接加载图片文件夹Resources里面的图片,Resources放在项目根路径下。
这种方法占用资源大、加载慢、移植性不大好,后来看到很多程序里面都没有图片资源文件夹,仔细查找才知道是在引用的DLL中加载出来的,感觉很方便,整理如下:
1.生成图片DLL
a.新建一个类库项目MyDll,项目下添加一个文件夹Pics ,专门用来存放图片。比如Pics下有一个图片12.bmp;
b.选中所有的图片文件,查看属性,生成操作选择“嵌入式的资源”;
c.写出调用该Dll时的函数,在class1.cs中添加如下代码:
d.点击项目生成即可。
在项目目录“MyDll/bin/Debug“下会生成了一个”MyDll.dll“文件。
2.使用该DLL
a.首先,在需要的项目中添加引用,将该Dll文件加载进去
b.重绘出此图
最初,使用图片时都是直接加载图片文件夹Resources里面的图片,Resources放在项目根路径下。
这种方法占用资源大、加载慢、移植性不大好,后来看到很多程序里面都没有图片资源文件夹,仔细查找才知道是在引用的DLL中加载出来的,感觉很方便,整理如下:
1.生成图片DLL
a.新建一个类库项目MyDll,项目下添加一个文件夹Pics ,专门用来存放图片。比如Pics下有一个图片12.bmp;
b.选中所有的图片文件,查看属性,生成操作选择“嵌入式的资源”;
c.写出调用该Dll时的函数,在class1.cs中添加如下代码:
public System.IO.Stream GetMyImage(String ImageName) { try { string name = "MyDll.Pics." + ImageName.ToString().Trim() + ".bmp"; this.GetType().Assembly.GetManifestResourceStream(name); return this.GetType().Assembly.GetManifestResourceStream(name); } catch (Exception e) { return null; } }
d.点击项目生成即可。
在项目目录“MyDll/bin/Debug“下会生成了一个”MyDll.dll“文件。
2.使用该DLL
a.首先,在需要的项目中添加引用,将该Dll文件加载进去
b.重绘出此图
private void Form1_Paint(object sender, PaintEventArgs e) { Graphics g = this.CreateGraphics(); MyDll.Class1 cc = new MyDll.Class1(); Bitmap bitmap = new Bitmap(cc.GetMyImage("12")); g.DrawImage(bitmap, 0, 0); } 通过上面步骤,就可以使用Dll来加载图片了。
相关文章推荐
- 重构项目之二:使用瀑布流效果加载图片
- 使用vue-lazyload解决Vue+Webpack项目的图片加载问题
- 封装项目整体架构,访问网络数据,展示列表数据,根据图片数量的不同来多条目加载,使用Universal-Image-Loader进行图片加载
- 如何在Windows Mobile下使用Native C++动态加载DLL
- 【开源项目1】使用ImageLoader实现图片异步加载
- 当线上项目拉下本地使用时图片无法加载,试试配置域名
- jRegistry.dll在两个项目中同时使用无法加载
- android图片加载库Glide4使用教程(项目中如何快速将Glide3替换成Glide4)
- Android开发之搜芽项目的图片加载问题(使用Volley进行网络图片加载)
- 【开源项目1】使用ImageLoader实现图片异步加载
- android Glide图片加载框架使用
- VC中使用GDI+实现为按钮加载Png图片
- AsyncTask使用实例,异步加载图片
- 删除项目中未使用的图片和类文件
- Android中关于Volley的使用(一)加载图片
- 异步加载图片框架Android-Universal-Image-Loader的使用
- 使用ATL库中的CImage类加载JPG图片作为对话框背景
- 使用Eclipse加载一个现有的java项目
- 图片加载库 Picasso 的使用与部分源码分析
- 使用Fresco加载图片