博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# Icon转Byte , Byte转Icon
阅读量:5321 次
发布时间:2019-06-14

本文共 1437 字,大约阅读时间需要 4 分钟。

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

 

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

 

public class IconHelper    {        ///         /// Byte转Icon        ///         ///         /// 
public static Icon FromByte(byte[] buffer) { return Icon.FromHandle(new System.Drawing.Bitmap(new MemoryStream(buffer)).GetHicon()); } /// /// Icon转Byte /// /// ///
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; } }

 

转载于:https://www.cnblogs.com/xyz0835/p/4850063.html

你可能感兴趣的文章
mysql优化
查看>>
[Kali_BT]通过低版本SerialPort蓝牙渗透功能手机
查看>>
Oracle命令--创建表空间、创建临时表空间、创建用户
查看>>
poj2187 Beauty Contest
查看>>
cf 472G Design Tutorial: Increase the Constraints 分块+压位/FFT
查看>>
iOS开发之使用XMPPFramework实现即时通信(一)
查看>>
CentOS 6.5(x86_32)下安装Oracle 10g R2
查看>>
C语言学习总结(三) 复杂类型
查看>>
HNOI2018
查看>>
【理财】关于理财的网站
查看>>
Ubunt中文乱码
查看>>
《当幸福来敲门》读后
查看>>
【转】系统无法进入睡眠模式解决办法
查看>>
[Tex学习笔记]尝试数学公式
查看>>
省市县,循环组装,整合大数组
查看>>
C语言中返回字符串函数的四种实现方法
查看>>
Jmeter学习及使用(一)安装
查看>>
H5 调用手机摄像机、相册功能
查看>>
python--闭包函数、装饰器
查看>>
【坑】linux目录软连接的相关操作--很容易误操作
查看>>