热门标签 | 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


推荐阅读
  • ElasticSearch 集群监控与优化
    本文详细介绍了如何有效地监控 ElasticSearch 集群,涵盖了关键性能指标、集群健康状况、统计信息以及内存和垃圾回收的监控方法。 ... [详细]
  • 为了解决不同服务器间共享图片的需求,我们最初考虑建立一个FTP图片服务器。然而,考虑到项目是一个简单的CMS系统,为了简化流程,团队决定探索七牛云存储的解决方案。本文将详细介绍使用七牛云存储的过程和心得。 ... [详细]
  • 本文介绍了一种根据目标检测结果,从原始XML文件中提取并分析特定类别的方法。通过解析XML文件,筛选出特定类别的图像和标注信息,并保存到新的文件夹中,以便进一步分析和处理。 ... [详细]
  • 微信小程序中实现位置获取的全面指南
    本文详细介绍了如何在微信小程序中实现地理位置的获取,包括通过微信官方API和腾讯地图API两种方式。文中不仅涵盖了必要的准备工作,如申请开发者密钥、下载并配置SDK等,还提供了处理用户授权及位置信息获取的具体代码示例。 ... [详细]
  • 深入解析 Android IPC 中的 Messenger 机制
    本文详细介绍了 Android 中基于消息传递的进程间通信(IPC)机制——Messenger。通过实例和源码分析,帮助开发者更好地理解和使用这一高效的通信工具。 ... [详细]
  • 本文探讨了仅对图像文件的内容进行加密的方法,而不加密整个文件。通过这种方式,可以保护图像中的敏感信息,同时保持文件的其他部分不受影响。 ... [详细]
  • 优化SQL Server批量数据插入存储过程的实现
    本文介绍了一种改进的SQL Server存储过程,用于生成批量插入语句。该方法不仅提高了性能,还支持单行和多行模式,适用于SQL Server 2005及以上版本。 ... [详细]
  • 主调|大侠_重温C++ ... [详细]
  • 本文详细介绍了如何在 Android 中使用值动画(ValueAnimator)来动态调整 ImageView 的高度,并探讨了相关的关键属性和方法,包括图片填充后的高度、原始图片高度、动画变化因子以及布局重置等。 ... [详细]
  • 深入剖析JVM垃圾回收机制
    本文详细探讨了Java虚拟机(JVM)中的垃圾回收机制,包括其意义、对象判定方法、引用类型、常见垃圾收集算法以及各种垃圾收集器的特点和工作原理。通过理解这些内容,开发人员可以更好地优化内存管理和程序性能。 ... [详细]
  • 本文档汇总了Python编程的基础与高级面试题目,涵盖语言特性、数据结构、算法以及Web开发等多个方面,旨在帮助开发者全面掌握Python核心知识。 ... [详细]
  • MySQL Debug 模式的实现与应用
    本文详细介绍了如何启用和使用 MySQL 的调试模式,包括编译选项、环境变量配置以及调试信息的解析。通过实际案例展示了如何利用调试模式解决客户端无法连接服务器的问题。 ... [详细]
  • 本文详细介绍了Java的安装、配置、运行流程以及有效的学习方法,旨在帮助初学者快速上手Java编程。 ... [详细]
  • 深入理解小程序中的Picker组件
    Picker组件是一种从屏幕底部弹出的滚动选择器,支持多种选择模式,包括普通选择器、多列选择器、时间选择器、日期选择器和省市区选择器。本文将详细介绍Picker的各种属性及其应用场景。 ... [详细]
  • 本文介绍了如何利用Python编程语言从指定目录中提取文件名,并根据文件扩展名进行筛选,将符合条件的文件名保存至文本文件中。文章适合Python初学者,旨在通过实际案例加深对文件操作和字符串处理的理解。 ... [详细]
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社区 版权所有