图片保存成ico格式 利用C#转换图片格式,还可转换为ico
利用C#转换图片格式,还可转换为ico
注意:转换为ICO后效果不好
源代码:
using System;
using System Collections Generic;
using System Text;
using System Drawing;
using System Drawing Imaging;
using System IO;
namespace paomiangege
{
public class ImageConvert

{
private int ICON_W = ;
private int ICON_H = ;
public ImageConvert()
{
}
//fileinpath origaly picture file path fileoutpath save filepath index the ImageFormat you want to convert to
public string Convert(string fileinpath string fileoutpath string index)
{
try
{
Bitmap bitmap = new Bitmap(fileinpath);
index = index ToLower();
switch (index)
{
case jpg : bitmap Save(fileoutpath ImageFormat Jpeg); break;
case jpeg : bitmap Save(fileoutpath ImageFormat Jpeg); break;
case bmp : bitmap Save(fileoutpath ImageFormat Bmp); break;
case png : bitmap Save(fileoutpath ImageFormat Png); break;
case emf : bitmap Save(fileoutpath ImageFormat Emf); break;
case gif : bitmap Save(fileoutpath ImageFormat Gif); break;
case wmf : bitmap Save(fileoutpath ImageFormat Wmf); break;
case exif : bitmap Save(fileoutpath ImageFormat Exif); break;
case tiff :
{
Stream stream = File Create(fileoutpath);
bitmap Save(stream ImageFormat Tiff);
stream Close();
} break;
case ico :
{
Icon ico;
Stream stream = File Create(fileoutpath);
ico = BitmapToIcon(bitmap false);
ico Save(stream); // save the icon
stream Close();
}; break;
default: return Error! ;
}
return Success! ;
}
catch(Exception ex)
{
return ex Message;
}
}
public string Convert(string fileinpath string fileoutpath string index int width int height)
{
if (width <= || height <= )
return error!size illegal! ;
try
{
Bitmap mybitmap = new Bitmap(fileinpath);
Bitmap bitmap = new Bitmap(mybitmap width height);
index = index ToLower();
switch (index)
{
case jpg : bitmap Save(fileoutpath ImageFormat Jpeg); break;
case jpeg : bitmap Save(fileoutpath ImageFormat Jpeg); break;
case bmp : bitmap Save(fileoutpath ImageFormat Bmp); break;
case png : bitmap Save(fileoutpath ImageFormat Png); break;
case emf : bitmap Save(fileoutpath ImageFormat Emf); break;
case gif : bitmap Save(fileoutpath ImageFormat Gif); break;
case wmf : bitmap Save(fileoutpath ImageFormat Wmf); break;
case exif : bitmap Save(fileoutpath ImageFormat Exif); break;
case tiff :
{
Stream stream = File Create(fileoutpath);
bitmap Save(stream ImageFormat Tiff);
stream Close();
} break;
case ico :
{
if (height > || width > )//ico maxsize *
return Error!Size illegal! ;
Icon ico;
ICON_H = height;
ICON_W = width;
Stream stream = File Create(fileoutpath);
ico = BitmapToIcon(mybitmap true);
ico Save(stream); // save the icon
stream Close();
}; break;
default: return Error! ;
}
return Success! ;
}
catch (Exception ex)
{
return ex Message;
}
}
private Icon BitmapToIcon(Bitmap obm bool preserve)
{
Bitmap bm;
// if not preserving aspect
if (!preserve) // if not preserving aspect
bm = new Bitmap(obm ICON_W ICON_H); // rescale from original bitmap
// if preserving aspect drop excess significance in least significant direction
else // if preserving aspect
{
Rectangle rc = new Rectangle( ICON_W ICON_H);
if (obm Width >= obm Height) // if width least significant
{ // rescale with width based on max icon height
bm = new Bitmap(obm (ICON_H * obm Width) / obm Height ICON_H);
rc X = (bm Width ICON_W) / ; // chop off excess width significance
if (rc X < ) rc X = ;
}
else // if height least significant
{ // rescale with height based on max icon width
bm = new Bitmap(obm ICON_W (ICON_W * obm Height) / obm Width);
rc Y = (bm Height ICON_H) / ; // chop off excess height significance
if (rc Y < ) rc Y = ;
}
bm = bm Clone(rc bm PixelFormat); // bitmap for icon rectangle
}
// create icon from bitmap
Icon icon = Icon FromHandle(bm GetHicon()); // create icon from bitmap
bm Dispose(); // dispose of bitmap
return icon; // return icon
}
}
lishixinzhi/Article/program/net/201311/12504- 上一篇
抛砖引玉 抛戈弃甲 [pāo gē qì jiǎ]_成语解释_成语出处_成语造句_近义词_反义词_相关成语_成语接龙_英文翻译
抛戈弃甲 [ āo gē qì jiǎ]_成语解释_成语出处_成语造句_近义词_反义词_相关成语_成语接龙_英文翻译 抛戈弃甲 [ āo gē qì jiǎ][抛戈弃甲]成语解释丢掉武器,扔掉铠甲。形
- 下一篇
“忍冬”的金银花!
说到冬天吃的药,除了板蓝根,金银花也是比较常见的,很多清热感冒药里面都含有金银花。 金银花属于双子叶植物中的忍冬科,它的中文学名就叫做忍冬。金银花是一种常绿的多年生小灌木,叶子经冬不凋,直到开春以后,新叶长出,老叶才慢慢脱落,这也是忍冬名字