zoukankan      html  css  js  c++  java
  • C#图片存到资源文件,以及调用图片

    在程序中会用到图片,有两种方法,一种是将图片放在运行文件夹中,直接调用,另一种是将图片放入资源文件中。


    方法一,一般在.exe文件同级创建文件夹,如“ico”,然后把图标放进去。在程序中代码采用相对路径调用。

    这种方式的优点是,以后更换图标比较方便,直接替换文件即可。

    代码略。


    方法二,在一些小程序中,如我们不想程序带有一系列除.exe以外的文件,可以采用导入资源文件中的形式。

    导入资源文件,优点有安全、读取调用较快(资源文件序列化存储)、不会有额外的文件(嵌入到程序集中)。

    做法:

    1. 在程序集中添加资源文件(如果已有则不需添加)。

    选则程序集,添加


    选择Visual C#项,“资源文件”


    添加。

    2. 双击打开我们刚新建的“Resource2.resx”,这里我们就可以添加资源了。

    如图所示


    3. 这时,当我们上传图片的时候,程序会自动生成一个文件夹,这个文件夹放置的就是我们传上去的图片。

    4.代码调用

    假如我们上传了一个名叫“aaa.jpg”的图片到资源,那么代码里面就只需要这样写:

    [csharp] view plaincopy
    1. Image image = Resource2.aaa;  

    这里需要解释一下,为什么这么简单呢,首先Resource2是一个类,它是在我们添加“系统资源文件”操作后自动创建的,aaa是它的类的一个静态属性,是当我们成功上传一个图片是自动添加的。所以我们直接写Resource2.aaa就可以了。

    下面贴出Resource2类的部分代码,作参考了解。

    [csharp] view plaincopy
    1. internal class Resource1 {  
    2.   
    3.     //...  
    4.   
    5.     /// <summary>  
    6.     ///   查找 System.Drawing.Bitmap 类型的本地化资源。  
    7.     /// </summary>  
    8.     internal static System.Drawing.Bitmap aaa  
    9.     {  
    10.         get  
    11.         {  
    12.             object obj = ResourceManager.GetObject("GdbConnection16", resourceCulture);  
    13.             return ((System.Drawing.Bitmap)(obj));  
    14.         }  
    15.     }  
    16.   
    17.     //...  
    可以看到

    第一,类和方法的修饰是internal,也就是只能在本程序集中调用。

    第二,aaa是该类的一个静态属性,所以直接用类名调用。

    第三,aaa的类型定义的Bitmap,所以我们的Image可以直接用它来赋值。


    这些都是封装好了的,我们只需要按照一定的方式导入,然后用代码直接调用就OK了。

  • 相关阅读:
    查找代码中的中文
    C# 清除cookies
    C# 32位程序在64位系统下注册表操作
    C# 32位程序在64位系统下运行中解决重定向问题
    C# 把一个文件夹下所有文件删除
    C# 把一个文件夹下所有文件复制到另一个文件夹下
    chromium浏览器开发系列第五篇:Debugging with WinDBG
    chromium浏览器开发系列第四篇:如何调试最新chromium源码
    chromium浏览器开发系列第三篇:chromium源码目录结构
    chromium浏览器高级开发系列第二篇:如何编译最新chromium源码
  • 原文地址:https://www.cnblogs.com/Anzhongliu/p/6091960.html
Copyright © 2011-2022 走看看