• C# Icon转Byte , Byte转Icon


    Icon直接保存成ico文件会严重失真,可以保存为png格式。

    但如果要转换到byte,直接使用Icon.ToBitmap().Save方法会出错,需要带一点参数。具体代码如下

        public class IconHelper
        {
            /// <summary>
            /// Byte转Icon
            /// </summary>
            /// <param name="buffer"></param>
            /// <returns></returns>
            public static Icon FromByte(byte[] buffer)
            {
                return Icon.FromHandle(new System.Drawing.Bitmap(new MemoryStream(buffer)).GetHicon());
            }
    
            /// <summary>
            /// Icon转Byte
            /// </summary>
            /// <param name="icon"></param>
            /// <returns></returns>
            public static byte[] ToByte(Icon icon)
            {
                Encoder myEncoder = Encoder.Quality;
                EncoderParameter myEncoderParameter = new EncoderParameter(myEncoder, 100);
                EncoderParameters encoders = new EncoderParameters(1);
                encoders.Param[0] = myEncoderParameter;
                ImageCodecInfo myImageCodecInfo = GetEncoderInfo("image/png");
    
                using (MemoryStream ms = new MemoryStream())
                {
                    icon.ToBitmap().Save(ms, myImageCodecInfo, encoders);
                    return ms.GetBuffer();
                }
            }
    
            private static ImageCodecInfo GetEncoderInfo(string mimeType)
            {
                int j;
                ImageCodecInfo[] encoders = ImageCodecInfo.GetImageEncoders();
                for (j = 0; j < encoders.Length; ++j)
                {
                    if (encoders[j].MimeType == mimeType)
                        return encoders[j];
                }
                return null;
            }
        }
  • 相关阅读:
    关于git的一些常用命令
    移动页面缩放方法之(三)rem布局
    day3笔记
    day2天笔记
    使用charles抓取手机端包 Charles设置断点
    用ffmpeg编辑视频
    js新闻摘要截取部分文字
    js实现多图展示 鼠标移入图片放大
    js全选与反选
    javascript与jQuery选项卡效果
  • 原文地址:https://www.cnblogs.com/xyz0835/p/4850063.html
Copyright © 2020-2023  润新知