/// <summary> /// 转换Image为Icon /// </summary> /// <param>要转换为图标的Image对象</param> /// <param>当image为null时是否返回null。false则抛空引用异常</param> /// <exception cref="ArgumentNullException" /> public static Icon ConvertToIcon(Image image, bool nullTonull = false) { if (image == null) { if (nullTonull) { return null; } throw new ArgumentNullException("image"); } using (MemoryStream msImg = new MemoryStream() , msIco = new MemoryStream()) { image.Save(msImg, ImageFormat.Png); using (var bin = new BinaryWriter(msIco)) { //写图标头部 bin.Write((short)0); //0-1保留 bin.Write((short)1); //2-3文件类型。1=图标, 2=光标 bin.Write((short)1); //4-5图像数量(图标可以包含多个图像) bin.Write((byte)image.Width); //6图标宽度 bin.Write((byte)image.Height); //7图标高度 bin.Write((byte)0); //8颜色数(若像素位深>=8,填0。这是显然的,达到8bpp的颜色数最少是256,byte不够表示) bin.Write((byte)0); //9保留。必须为0 bin.Write((short)0); //10-11调色板 bin.Write((short)32); //12-13位深 bin.Write((int)msImg.Length); //14-17位图数据大小 bin.Write(22); //18-21位图数据起始字节 //写图像数据 bin.Write(msImg.ToArray()); bin.Flush(); bin.Seek(0, SeekOrigin.Begin); return new Icon(msIco); } } }
,相关文章
- c#获取网络图片 Image和byte[]数组的相互转换
- c#图像处理入门(-bitmap类和图像像素值获取方法) image与byte数组的转换
- js replace 全局替换 以表单的方式提交参数 判断是否为ie浏览器 将jquery.qqFace.js表情转换成微信的字符码 手机端省市区联动 新字体引用本地运行可以获得,放到服务器上报404 C#提取html中的汉字 MVC几种找不到资源的解决方式 使用Windows服务定时去执行一个方法的三种方式
- C# Datetime.Ticks将时间转换成以秒为单位与格林尼治时间
- 使用C#批量转换文本文件编码为UTF8
- 用C#转换Word或Excel文档为Html文件
- [转]C#将image中的显示的图片转换成二进制
- C#编程中的Image/Bitmap与base64的转换及 Base-64 字符数组或字符串的长度无效问题 解决
- C# 把日期字符串转换为日期类型 (MM大写为月、小写为分钟)
- 内存转换Image到Icon