• .NET生成ICO图标


    using System;
    using System.Collections.Generic;
    using System.Web;
    using System.Drawing;
    using System.IO;
    
    namespace EASAA.Common
    {
        /// <summary>
        /// 生成Ico类
        /// </summary>
        public class IconMaker
        {
    
            /// <summary>
            /// 创建
            /// </summary>
            /// <param name="strfile">原图片路径,支持 *.jpg,*.png,*.bmp,*.gif</param>
            /// <param name="strIcofile">要生成的Ico全路径,如:C://upload/1/1.ico</param>
            /// <param name="_size">大小(一般传入16)</param>
            /// <returns></returns>
            public bool Create(string strfile, string strIcofile, int _size)
            {
                bool bol = false;
    
                try
                {
                    Bitmap srcBitmap = new Bitmap(strfile);//用于保存原图
    
                    Size size = new Size(_size, _size);//用于保存目标图标的大小           
    
                    FileStream fs = new FileStream(strIcofile, FileMode.Create);
    
                    Icon icon = ConvertBitmap2Ico(srcBitmap, size);
    
                    icon.Save(fs);//将Icon保存的指定的输出
    
                    fs.Close();
    
                    bol = true;
                }
                catch (Exception ex)
                {
    
                    // throw;
                }
    
                return bol;
            }
    
            /// <summary>
            /// 实现bitmap到ico的转换
            /// </summary>
            /// <param name="bitmap">原图</param>
            /// <returns>转换后的指定大小的图标</returns>
            private Icon ConvertBitmap2Ico(Bitmap bitmap, Size size)
            {
                Bitmap icoBitmap = new Bitmap(bitmap, size);//创建制定大小的原位图
    
                //获得原位图的图标句柄
                IntPtr hIco = icoBitmap.GetHicon();
                //从图标的指定WINDOWS句柄创建Icon
                Icon icon = Icon.FromHandle(hIco);
    
                return icon;
            }
    
        }
    }
  • 相关阅读:
    推荐系统相关知识
    关于hive核心
    关于hive的基础
    立个flag
    关于数据增强——文本增强
    .NET Core 实践:事件通知和异步处理
    .NET Core 实践:微服务架构的优点
    C#一定比C++性能差?当然不!破除迷信,从我做起!
    Visual Studio Code 搭配 Docker 一键搭建golang开发环境
    单例双重检查引发的资源竞争/数据竞争
  • 原文地址:https://www.cnblogs.com/New-world/p/3183954.html
Copyright © 2020-2023  润新知