热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

功能介绍:[c#]图片转换ico图标程序及源码经常需要将图片转成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


推荐阅读
author-avatar
T岛T_387
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有