抽空写了一个ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换。具体的程序就在下面,如果看的人多,过两天再把思路写一下。废话不说,见代码。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;

namespace IconMaker
{
    public partial class Form1 : Form
    {
        Bitmap srcBitmap = null;//用于保存原图
        Size size;//用于保存目标图标的大小

public Form1()
        {
            InitializeComponent();
        }

/// <summary>
        /// 选择源文件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void browseBtn_Click(object sender, EventArgs e)
        {
            OpenFileDialog dlg = new OpenFileDialog();

dlg.Filter = "图片(*.jpg,*.png,*.bmp)|*.jpg;*.png;*.bmp";//筛选文件格式
            dlg.ValidateNames = true;//文件有效性验证ValidateNames,验证用户输入是否是一个有效的Windows文件名
            dlg.CheckFileExists = true;///验证文件有效性
            dlg.CheckPathExists = true;//验证路径有效性

if (dlg.ShowDialog() == DialogResult.OK)
            {
                pathTb.Text = dlg.FileName;
                srcBitmap = new Bitmap(dlg.FileName);

this.srcPanel.Refresh();
            }
        }

/// <summary>
        /// 禁止用户在此TextBox中输入
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void textBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            //禁止用户输入
            e.Handled = true;
        }

/// <summary>
        /// 绘制原图
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void srcPanel_Paint(object sender, PaintEventArgs e)
        {
            if (srcBitmap != null)
            {
                Graphics g = e.Graphics;

//原图的绘制区域
                Rectangle rect = new Rectangle(0, 0, this.srcPanel.Width, this.srcPanel.Height);
                //在规定区域缩放绘制原图
                g.DrawImage(srcBitmap, rect);
            }
        }

/// <summary>
        /// 实现bitmap到ico的转换
        /// </summary>
        /// <param name="bitmap">原图</param>
        /// <returns>转换后的指定大小的图标</returns>
        private Icon ConvertBitmap2Ico(Bitmap bitmap)
        {
            Bitmap icoBitmap = new Bitmap(bitmap, size);//创建制定大小的原位图

//获得原位图的图标句柄
            IntPtr hIco = icoBitmap.GetHicon();
            //从图标的指定WINDOWS句柄创建Icon
            Icon icon = Icon.FromHandle(hIco);

return icon;
        }

/// <summary>
        /// 生成并保存图标
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void makeBtn_Click(object sender, EventArgs e)
        {
            if (pathTb.Text != "" && sizeComb.Text != "")
            {
                SaveFileDialog dlg = new SaveFileDialog();
                dlg.Filter = "图标(*.ico)|*.ico";
                dlg.CheckPathExists = true;
                if (dlg.ShowDialog() == DialogResult.OK)
                {
                    FileStream fs = new FileStream(dlg.FileName, FileMode.Create);

Icon icon = ConvertBitmap2Ico(srcBitmap);

this.Icon = icon;

icon.Save(fs);//将Icon保存的指定的输出
                    fs.Close();
                }
            }
        }

/// <summary>
        /// 选择目标图标的大小
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void sizeComb_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (sizeComb.SelectedIndex == 0)
            {
                size = new Size(16, 16);
            }
            else if (sizeComb.SelectedIndex == 1)
            {
                size = new Size(32, 32);
            }
            else
            {
                size = new Size(48, 48);
            }
        }
    }
}

文件下载:       Icon转换

转载于:https://www.cnblogs.com/xpxu/archive/2009/10/10/1580635.html

抽空写了一个ICON图标的转换程序相关推荐

  1. C#实现ICON图标的转换程序介绍

     ICON图标的转换程序,支持png\jpe\bmp格式到ico的转换. using System; using System.Collections.Generic; using System. ...

  2. PjConvertImageFormat:用FreeImage.NET写的一个35种图像格式转换程序

    PjConvertImageFormat,基本上将所有的FreeImage支持的文件格式都做上去了,也就是说你可以在35种图像格式之间相互转换,它们分别是:bmp/ico/jpeg/jpg/jng/k ...

  3. java写的一个zip压缩源码错误分析

    下面是本人抽空写的一个 关于zip压缩,大家帮我看看什么地方错了 import java.io.* ; import java.util.* ; import java.util.zip.* ; pu ...

  4. 制作扁平化icon图标

    (撰写时间:4月8号:作者:谢良杰) icon指的是手机或电脑中每一套主题的APP图标. 下面,我详细的讲解一下制作一个icon图标的操作步骤: 首先,新建一张A4大小的画布.Ctrl+r打开 标尺线 ...

  5. icon图标素材网站推荐,支持免费下载

    icon图标网站在设计领域发挥着重要作用,可以为设计师提供丰富多样的图标设计灵感和资源,不仅可以提高设计师的工作效率,还可以帮助设计师提高设计质量.本文选择了7个热门的icon图标网站,可以帮助设计师 ...

  6. Qt5制作icon图标文件和发布程序简易介绍

    制作icon图标文件 1.制作icon图标文件 可以进入这个网站在线制作:http://www.ico.la/ 2.创建资源文件:qrc文件 接着 先添加前缀,然后添加文件 最终结果: 3.可以用te ...

  7. 文字前的小图标HTML,Font Awesome实现文字链右边加一个箭头图标

    在上一篇文章里介绍了用css背景图实现文字链右边加一个箭头图标的方法,本文将介绍用Font Awesome实现文字链右边加一个箭头图标的方法. Font Awesome是一个图标字体库,包含300多种 ...

  8. 小图标的使用(插入icon图标)

    @xudongh 2016-07-14 12:06 字数 2180 阅读 2050 在网页中插入icon图标的方法总结 前端开发 三种方法 CSS Sprite font + HTML font + ...

  9. 浏览器页签icon图标的设置和获取

    ReadMe 前言 浏览器icon图标设置 浏览器icon图标获取 前言   今天上午小明(网络上突然放大招并且给大家带来不少笑点的那个小明)发来信息求助,具体的需求是小明正在搞一个网站的维护时需要新 ...

最新文章

  1. 如何直观地理解「协方差矩阵」?
  2. 嵌入式系统学习笔记之五-- uboot常用命令 环境变量
  3. 机器人 陆梅东_上海乐高创客工作坊活动顺利举行
  4. jquery 简单分页插件jQuerypage
  5. 采样次数不同平均值不一样_网络推广采取的方式不同,效果也不一样
  6. 配置审计(Config)变配报警设置
  7. Spring与Struts框架整合
  8. 整数区间(信息学奥赛一本通-T1324)
  9. python后端面试题
  10. MySQL字符集问题
  11. import MySQLdb UserWarning
  12. 解决C#中ListView闪烁的办法
  13. 智慧酒店:锐捷网络打造的完美酒店
  14. 1001.A+B Format (20)(思路,bug发现及其修改,提交记录)
  15. 【音频处理】WAV 文件格式分析 ( 逐个字节解析文件头 | 相关字段的计算公式 )
  16. android hci设备,android-hci相关操作
  17. 西安建筑科技大学计算机系专业怎么样,西安建筑科技大学好就业吗?附西安建筑大学就业年薪...
  18. 高斯勒让德求积公式matlab通用程序,数值分析——Gauss-Legendre 求积分(Matlab实现)...
  19. GD32E232Kx 引脚功能表
  20. 模拟退火算法系列之(二):一个实例

热门文章

  1. html页面之间跳转失败,js跳转到上一页面失败的解决方法
  2. 关于微软必应词典客户端 的案例分析
  3. Xilinx ISE系列教程(4):ChipScope逻辑分析仪ICON、ILA、VIO使用
  4. 【网络通信】Java实现简单的聊天对话
  5. OSChina 周三乱弹 —— 就算登顶程序员的键盘王座
  6. 建议收藏 | 买保险怕上当?8分钟解决你所有疑问
  7. 深度相机工作原理 (AMCW)
  8. LINUX查看进程的4种方法(小结)
  9. EMSWIN GUIBuilder移植到开发板
  10. 北京丰面颊多长时间能恢复【咨询脂肪专家王明利博士】