知识大全 利用C#转换图片格式,还可转换为ico
Posted 知
篇首语:知识象烛光,能照亮一个人,也能照亮无数人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 利用C#转换图片格式,还可转换为ico相关的知识,希望对你有一定的参考价值。
利用C#转换图片格式,还可转换为ico 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
注意:转换为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
cha138/Article/program/net/201311/12504
相关参考