知识大全 利用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

相关参考