zoukankan      html  css  js  c++  java
  • WPF 引用DLL纯图像资源包类库中的图片

    1、建立WPF应用程序
                 过程略。
     
    2、创建类库项目(图片资源包)
          创建图片资源类库项目MyImages,删除class1.cs,在项目属性的资源选项中选择“图像”类型,并在“添加资源”中点击“添加现有的文件”,把图像加入到资源。并把访问修饰符改为Public。
     
    3、在WPF应用程序中引用类库项目
           在WPF中通过 MyImages.Properties.Resources.XXX即可访问图像。XXX为图像文件名(资源名称)。但在WPF中的到图像还需一下工作。
     
    4、WPF中创建Rectangle或其它采用ImageBrush对象为填充或背景的控件,将ImageBrush的ImageSource属性设置为资源包中图像的方法如下:
     /// <summary>
            /// 读取符号(图片资源库中的文件)
            /// </summary>
            /// <param name="symbolName"></param>
            /// <returns></returns>
            public static ImageBrush GetImagebrush(string ImageName)
            {
                ImageBrush imageBrush = new ImageBrush();
                System.Resources.ResourceManager rm = ImageLibrary.Properties.Resources.ResourceManager;
                System.Drawing.Bitmap b = (System.Drawing.Bitmap)rm.GetObject(ImageName);
                imageBrush.ImageSource = ToWpfBitmap(b);
                return imageBrush;
            }

          

     public static BitmapSource ToWpfBitmap(Bitmap bitmap)
            {
                using (MemoryStream stream = new MemoryStream())
                {
                    //注意:转换的图片的原始格式ImageFormat设为BMP、JPG、PNG等
                    bitmap.Save(stream, ImageFormat.Png);
    
                    stream.Position = 0;
                    BitmapImage result = new BitmapImage();
                    result.BeginInit();
                    // According to MSDN, "The default OnDemand cache option retains access to the stream until the image is needed."
                    // Force the bitmap to load right now so we can dispose the stream.
                    result.CacheOption = BitmapCacheOption.OnLoad;
                    result.StreamSource = stream;
                    result.EndInit();
                    result.Freeze();
                    return result;
                }
            }

                

    调用方法:           Rectangle1.Fill=GetImagebrush(ImageName);
         注意转换的图片的原始格式ImageFormat必须设置正确。如原图片为PNG格式,调用时设为BMP格式时会失真。
  • 相关阅读:
    SICP 1.9-1.10
    SICP 1.6-1.8
    SICP 1.1-1.5
    【最小生成树】Codeforces 707B Bakery
    【数学】Codeforces 707C Pythagorean Triples
    【离线】【深搜】【树】Codeforces 707D Persistent Bookcase
    【贪心】Vijos P1615 旅行
    【字符串】【最小表示法】Vijos P1683 有根树的同构问题
    【模拟】Vijos P1005 超长数字串
    【并查集】【模拟】Codeforces 698B & 699D Fix a Tree
  • 原文地址:https://www.cnblogs.com/gengaixue/p/4336045.html
Copyright © 2011-2022 走看看