using System;
using System.Collections.Generic;
using System.Web;
using System.Drawing;
using System.IO;
namespace EASAA.Common
{
/// <summary>
/// 生成Ico类
/// </summary>
public class IconMaker
{
/// <summary>
/// 创建
/// </summary>
/// <param name="strfile">原图片路径,支持 *.jpg,*.png,*.bmp,*.gif</param>
/// <param name="strIcofile">要生成的Ico全路径,如:C://upload/1/1.ico</param>
/// <param name="_size">大小(一般传入16)</param>
/// <returns></returns>
public bool Create(string strfile, string strIcofile, int _size)
{
bool bol = false;
try
{
Bitmap srcBitmap = new Bitmap(strfile);//用于保存原图
Size size = new Size(_size, _size);//用于保存目标图标的大小
FileStream fs = new FileStream(strIcofile, FileMode.Create);
Icon icon = ConvertBitmap2Ico(srcBitmap, size);
icon.Save(fs);//将Icon保存的指定的输出
fs.Close();
bol = true;
}
catch (Exception ex)
{
// throw;
}
return bol;
}
/// <summary>
/// 实现bitmap到ico的转换
/// </summary>
/// <param name="bitmap">原图</param>
/// <returns>转换后的指定大小的图标</returns>
private Icon ConvertBitmap2Ico(Bitmap bitmap, Size size)
{
Bitmap icoBitmap = new Bitmap(bitmap, size);//创建制定大小的原位图
//获得原位图的图标句柄
IntPtr hIco = icoBitmap.GetHicon();
//从图标的指定WINDOWS句柄创建Icon
Icon icon = Icon.FromHandle(hIco);
return icon;
}
}
}