C#图片存到资源文件,以及调用图片
2017-03-17 13:05
991 查看
http://blog.csdn.net/mengdong_zy/article/details/8971154/
在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。
方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。
这种方式的优点是,以后更换图标比较方便,直接替换文件即可。
代码略。
方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件,可以采用导入资源文件中的形式。
导入资源文件,优点有安全、读取调用较快(资源文件序列化存储)、不会有额外的文件(嵌入到程序集中)。
做法:
1. 在程序集中添加资源文件(如果已有则不需添加)。
选则程序集,添加
选择Visual C#项,“资源文件”
添加。
2. 双击打开我们刚新建的“Resource2.resx”,这里我们就可以添加资源了。
如图所示
3. 这时,当我们上传图片的时候,程序会自动生成一个文件夹,这个文件夹放置的就是我们传上去的图片。
4.代码调用
假如我们上传了一个名叫“aaa.jpg”的图片到资源,那么代码里面就只需要这样写:
[csharp] view
plain copy
Image image = Resource2.aaa;
这里需要解释一下,为什么这么简单呢,首先Resource2是一个类,它是在我们添加“系统资源文件”操作后自动创建的,aaa是它的类的一个静态属性,是当我们成功上传一个图片是自动添加的。所以我们直接写Resource2.aaa就可以了。
下面贴出Resource2类的部分代码,作参考了解。
[csharp] view
plain copy
internal class Resource1 {
//...
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap aaa
{
get
{
object obj = ResourceManager.GetObject("GdbConnection16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
//...
可以看到
第一,类和方法的修饰是internal,也就是只能在本程序集中调用。
第二,aaa是该类的一个静态属性,所以直接用类名调用。
第三,aaa的类型定义的Bitmap,所以我们的Image可以直接用它来赋值。
为图标设置为 this.Icon = Resource2.mir;
这些都是封装好了的,我们只需要按照一定的方式导入,然后用代码直接调用就OK了。
在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。
方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。
这种方式的优点是,以后更换图标比较方便,直接替换文件即可。
代码略。
方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件,可以采用导入资源文件中的形式。
导入资源文件,优点有安全、读取调用较快(资源文件序列化存储)、不会有额外的文件(嵌入到程序集中)。
做法:
1. 在程序集中添加资源文件(如果已有则不需添加)。
选则程序集,添加
选择Visual C#项,“资源文件”
添加。
2. 双击打开我们刚新建的“Resource2.resx”,这里我们就可以添加资源了。
如图所示
3. 这时,当我们上传图片的时候,程序会自动生成一个文件夹,这个文件夹放置的就是我们传上去的图片。
4.代码调用
假如我们上传了一个名叫“aaa.jpg”的图片到资源,那么代码里面就只需要这样写:
[csharp] view
plain copy
Image image = Resource2.aaa;
这里需要解释一下,为什么这么简单呢,首先Resource2是一个类,它是在我们添加“系统资源文件”操作后自动创建的,aaa是它的类的一个静态属性,是当我们成功上传一个图片是自动添加的。所以我们直接写Resource2.aaa就可以了。
下面贴出Resource2类的部分代码,作参考了解。
[csharp] view
plain copy
internal class Resource1 {
//...
/// <summary>
/// 查找 System.Drawing.Bitmap 类型的本地化资源。
/// </summary>
internal static System.Drawing.Bitmap aaa
{
get
{
object obj = ResourceManager.GetObject("GdbConnection16", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
//...
可以看到
第一,类和方法的修饰是internal,也就是只能在本程序集中调用。
第二,aaa是该类的一个静态属性,所以直接用类名调用。
第三,aaa的类型定义的Bitmap,所以我们的Image可以直接用它来赋值。
为图标设置为 this.Icon = Resource2.mir;
这些都是封装好了的,我们只需要按照一定的方式导入,然后用代码直接调用就OK了。
相关文章推荐
- C#图片存到资源文件,以及调用图片
- C#图片存到资源文件,以及调用图片(转载)
- C#图片存到资源文件,以及调用图片
- C#中使用资源文件保存图片和皮肤文件的使用
- android中打包含有Activity以及资源文件的jar包在工程中调用
- 用C语言写的ISAPI上传文件(图片)、显示图片、图片存储以及可供其它语言调用的方式、和程序源代码
- C# DLL资源文件打包(图片、JS、CSS)[WebResource]
- Asp.net 组件开发中web资源文件(图片、js)的调用问题
- C#调用新浪微博API生成RSS资源文件
- C# 设置当前程序调用的dll文件以及其他文件的寻址路径
- C#获取资源中的图片文件
- https站点内垮域调用资源文件(图片/flash/video/文件/) 避免弹出"含不安全内容"窗口
- C#调用Resources.resx资源文件中的资源
- Android中打包含有Activity以及资源文件的jar包在工程中调用
- C# ini (配置文件)API调用以及例子
- C#中使用资源文件保存图片和皮肤文件的使用
- C#调用Resources.resx资源文件中的资源
- 将C#程序嵌入资源中(C# 调用嵌入资源的EXE文件方法)
- C#调用Resources.resx资源文件中的资源
- Android中打包含有Activity以及资源文件的jar包在工程中调用