下载首页 | 资讯中心 | 下载分类 | 最近更新 | 排 行 榜 | 国产软件 | 国外软件 | 汉化补丁 |
文章搜索: 分类 关键字 收藏本站设为首页
您的位置:首页网页设计ASP程序 → 用C#轻松在DOTNET中实现缩略图__教程
用C#轻松在DOTNET中实现缩略图__教程
日期:2007-5-20 0:38:12 人气:67     [ ]
上一页 [1] [2] [3] 下一页

  /// <summary>
  /// 检测扩展名的有效性
  /// </summary>
  /// <param name="sExt">文件名扩展名</param>
  /// <returns>如果扩展名有效,返回true,否则返回false.</returns>
  bool CheckValidExt(string sExt)
  {  
   bool flag=false;
   string[] aExt = AllowExt.Split('|');
   foreach(string filetype in aExt)
   {
    if(filetype.ToLower()==sExt)
    {
     flag = true;
     break;
    }
   }  
   return flag;
  }

  /// <summary>
  /// 保存图片
  /// </summary>
  /// <param name="image">Image 对象</param>
  /// <param name="savePath">保存路径</param>
  /// <param name="ici">指定格式的编解码参数</param>
  void SaveImage(System.Drawing.Image image,string savePath,ImageCodecInfo ici)
  {
   //设置 原图片 对象的 EncoderParameters 对象
   EncoderParameters parameters = new EncoderParameters(1);
   parameters.Param[0] = new EncoderParameter(Encoder.Quality, ((long) 90));
   image.Save(savePath, ici, parameters);
   parameters.Dispose();
  }
  #endregion

  #region Methods

  /// <summary>
  /// 生成缩略图
  /// </summary>
  /// <param name="sourceImagePath">原图片路径(相对路径)</param>
  /// <param name="thumbnailImagePath">生成的缩略图路径,如果为空则保存为原图片路径(相对路径)</param>
  /// <param name="thumbnailImageWidth">缩略图的宽度(高度与按源图片比例自动生成)</param>
  public void ToThumbnailImages(string sourceImagePath,string thumbnailImagePath,int thumbnailImageWidth)
  {
   string SourceImagePath = sourceImagePath;
   string ThumbnailImagePath = thumbnailImagePath;
   int ThumbnailImageWidth = thumbnailImageWidth;
   string sExt = SourceImagePath.Substring(SourceImagePath.LastIndexOf(".")).ToLower();
   if(SourceImagePath.ToString()==System.String.Empty) throw new NullReferenceException("SourceImagePath

is null!");
   if(!CheckValidExt(sExt))
   {
    throw new ArgumentException("原图片文件格式不正确,支持的格式有[ "+ AllowExt +"

]","SourceImagePath");
   }
   //从 原图片 创建 Image 对象
   System.Drawing.Image image = System.Drawing.Image.FromFile(HttpContext.Current.Server.MapPath

(SourceImagePath)); 
   int num = ((ThumbnailImageWidth / 4) * 3);
   int width = image.Width;
   int height = image.Height;
   //计算图片的比例
   if ((((double) width) / ((double) height)) >= 1.3333333333333333f)
   {
    num = ((height * ThumbnailImageWidth) / width);
   }
   else
   {
    ThumbnailImageWidth = ((width * num) / height);
   }
   if ((ThumbnailImageWidth < 1) || (num < 1))
   {
    return;
   }
   //用指定的大小和格式初始化 Bitmap 类的新实例
   Bitmap bitmap = new Bitmap(ThumbnailImageWidth, num, PixelFormat.Format32bppArgb);
   //从指定的 Image 对象创建新 Graphics 对象
   Graphics graphics = Graphics.FromImage(bitmap);
   //清除整个绘图面并以透明背景色填充
   graphics.Clear(Color.Transparent);
   //在指定位置并且按指定大小绘制 原图片 对象
   graphics.DrawImage(image, new Rectangle(0, 0, ThumbnailImageWidth, num));
   image.Dispose();   
   try
   {  
    //将此 原图片 以指定格式并用指定的编解码参数保存到指定文件
    string savepath = (ThumbnailImagePath==null?SourceImagePath:ThumbnailImagePath); 
    SaveImage(bitmap,HttpContext.Current.Server.MapPath(savepath),GetCodecInfo((string)htmimes

出处:本站原创 作者:佚名
 阅读排行
01.精美qq空间横幅代码
02.最酷qq个性女生网名
03.最新又有免费QQ秀啦《..
04.巧用透明FlaSh扮靓你的..
05.花之神匠代码(最新代码..
06.最新QQ空间免费导航
07.最新免费个人形象设置..
08.最新qq空间flash代码m..
09.CSS技术结合图像实现动..
10.Photoshop光影魔术师:..
11.QQ音速种子狂刷
12.最新QQ空间透明代码
13.PS实例教程:教你制作结..
14.Photoshop光影魔术师:..
15.制作背景图__教程
16.用Photoshop制作漂亮的..
17.如何获得QQ音速种子
18.≤QQ空间代码≥在日志..
19.网页浮动广告的制作代..
20.用Photoshop制作大红灯..
21.常用CSS
22.Photoshop给靓丽美女打..
 推荐文章
·Photoshop 表现技法之..
·快速将你的相片矢量化..
·PHOTOSHOP制作炽热的太..
·用Photoshop制作美丽的..
·流行杀手的娃娃工厂__..
·打造8号台球__教程
·PHOTOSHOP制作待机MM图..
·用Photoshop帮MM做纹身..
·PHOTOSHOP美眉着色绝招..
·PHOTOSHOP花露的制作_..
·PHOTOSHOP渐变工具的巧..
·PHOTOSHOP手绘奥兰多-..
·高难度抠图两种方法__..
·Photoshop高尔夫球的制..
·Photoshop打造精美玉佩..
Eqxia_COM下载站 版权所有 Copyright© 2001-2005 Www.eqxia.COM, All Rights Reserved.