> 文档中心 > 「c#」图片转换ico图标程序及源码

「c#」图片转换ico图标程序及源码

 

功能介绍:

[c#]图片转换ico图标程序及源码

经常需要将图片转成ico图标文件使用,现在很多在线转换功能也很不错。不过还是自己写一个本地的小程序使用更加方便~

通过配合之前写的图标提取的小工具非常奈斯~

提取到图标文件以后保存成.png图片,以备使用。接着使用图片转换工具将png、jpg等图片格式转成成ico文件,并保存到本地。

#图片转换ico图标程序.主要的功能实现:

1、读取本地文件素材

2、将本地图片素材换成无损icon图标文件

主要源码:

这里主要是参考了:

https://blog.csdn.net/u010317618/article/details/124449563

灰常感谢~

关键源代码:

/// /// 图片转换为ico文件/// /// 原图片路径/// 输出ico文件路径/// 输出ico图标尺寸,不可大于255x255/// 是否转换成功public static bool ConvertImageToIcon(string origin, string destination, Size iconSize){if (iconSize.Width > 255 || iconSize.Height > 255){return false;}Image image = new Bitmap(new Bitmap(origin), iconSize); //先读取已有的图片为bitmap,并缩放至设定大小MemoryStream bitMapStream = new MemoryStream(); //存原图的内存流MemoryStream iconStream = new MemoryStream(); //存图标的内存流image.Save(bitMapStream, ImageFormat.Png); //将原图读取为png格式并存入原图内存流BinaryWriter iconWriter = new BinaryWriter(iconStream); //新建二进制写入器以写入目标图标内存流/** * 下面是根据原图信息,进行文件头写入 */iconWriter.Write((short)0);iconWriter.Write((short)1);iconWriter.Write((short)1);iconWriter.Write((byte)image.Width);iconWriter.Write((byte)image.Height);iconWriter.Write((short)0);iconWriter.Write((short)0);iconWriter.Write((short)32);iconWriter.Write((int)bitMapStream.Length);iconWriter.Write(22);//写入图像体至目标图标内存流iconWriter.Write(bitMapStream.ToArray());//保存流,并将流指针定位至头部以Icon对象进行读取输出为文件iconWriter.Flush();iconWriter.Seek(0, SeekOrigin.Begin);Stream iconFileStream = new FileStream(destination, FileMode.Create);Icon icon = new Icon(iconStream);icon.Save(iconFileStream); //储存图像/** * 下面开始释放资源 */iconFileStream.Close();iconWriter.Close();iconStream.Close();bitMapStream.Close();icon.Dispose();image.Dispose();return File.Exists(destination);}

调用方法及判断:

if (textBox1.Text.Length <= 0)     {  MessageBox.Show("请先选择图片");  return;     }     else if (textBox1.Text.ToLower().IndexOf("jpg") == -1 && textBox1.Text.ToLower().IndexOf("jpeg") == -1 && textBox1.Text.ToLower().IndexOf("png") == -1 && textBox1.Text.ToLower().IndexOf("bmp") == -1)     {  MessageBox.Show("文件必须是图片");  return;     }     string strSize = comboBox1.Text.Substring(comboBox1.Text.IndexOf("*") + 1);     ConvertImageToIcon(textBox1.Text, System.Environment.CurrentDirectory + @"\" + str_FileName + ".ico", new Size(int.Parse(strSize), int.Parse(strSize)));

有分的来这下:「c#」图片转换ico图标程序及源码-C#文档类资源-CSDN下载

没分的来这下:

链接:https://pan.baidu.com/s/1MEXFq6MKW3HHoevnU0mmyQ 
提取码:2jp6

588库千库资源网