C#分享辅助类:资源文件辅助(ResourceHandler)

30 篇文章 1 订阅

名称

方法

得到资源文件

GetResource

得到资源图片

GetImage

得到 WPF ImageBrush

GetImageBrush

得到WPF ImageSource

GetImageSource

得到ICON图标

GetIcon

得到声音文件

GetWav

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Reflection;
using System.Drawing;

namespace Wsfly
{
    /// <summary>
    /// 当前程序集资源
    /// </summary>
    public class ResourceHandler
    {
        /// <summary>
        /// 得到资源文件
        /// </summary>
        /// <param name="name">名称</param>
        /// <returns></returns>
        public static Stream GetResource(string name)
        {
            if (string.IsNullOrEmpty(name)) return null;

            //资源名称
            Assembly assembly = Assembly.GetExecutingAssembly();
            //读取资源
            Stream stream = assembly.GetManifestResourceStream(name);

            //返回资源
            return stream;
        }



        /// <summary>
        /// 得到资源图片
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static Image GetImage(string name)
        {
            if (string.IsNullOrEmpty(name)) return null;

            //得到图片流
            Stream stream = GetResource(name);
            //流是否为空
            if (stream == null) return null;
            //转换为图片对象
            Image img = Image.FromStream(stream);
            //释放资源
            stream.Close();
            //返回图片
            return img;
        }

        /// <summary>
        /// 得到 WPF ImageBrush
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static System.Windows.Media.ImageBrush GetImageBrush(string name)
        {
            if (string.IsNullOrEmpty(name)) return null;

            System.Windows.Media.ImageSource bitmapImage = GetImageSource(name);
            System.Windows.Media.ImageBrush brush = new System.Windows.Media.ImageBrush();
            brush.ImageSource = bitmapImage;

            return brush;
        }
        /// <summary>
        /// 得到WPF ImageSource
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static System.Windows.Media.ImageSource GetImageSource(string name)
        {
            if (string.IsNullOrEmpty(name)) return null;

            Stream stream = GetResource(name);

            if (stream == null) return null;

            System.Windows.Media.Imaging.BitmapImage bitmapImage = new System.Windows.Media.Imaging.BitmapImage();
            bitmapImage.BeginInit();
            bitmapImage.StreamSource = stream;
            bitmapImage.CacheOption = System.Windows.Media.Imaging.BitmapCacheOption.OnLoad;
            bitmapImage.EndInit();
            bitmapImage.Freeze();

            return bitmapImage;
        }

        /// <summary>
        /// 得到ICON图标
        /// </summary>
        /// <param name="name"></param>
        /// <returns></returns>
        public static Icon GetIcon(string name)
        {
            if (string.IsNullOrEmpty(name)) return null;

            //得到图片流
            Stream stream = GetResource(name);
            //流是否为空
            if (stream == null) return null;
            //得到ICON
            Icon icon = Icon.FromHandle(new Bitmap(stream).GetHicon());
            //释放资源
            stream.Close();
            //返回图片
            return icon;
        }

        /// <summary>
        /// 得到声音文件
        /// </summary>
        /// <param name="name"></param>
        public static Stream GetWav(string name)
        {
            return GetResource(name);
        }

    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MOZ-Soft

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值