1. /// <summary>
  2. /// 生成缩略图
  3. /// </summary>
  4. /// <param name="orginalImagePat">原图片地址</param>
  5. /// <param name="thumNailPath">缩略图地址</param>
  6. /// <param name="width">缩略图宽度</param>
  7. /// <param name="height">缩略图高度</param>
  8. /// <param name="model">生成缩略的模式</param>
  9. public void MakeThumNail(string originalImagePath, string thumNailPath, int width, int height, string model)
  10. {
  11. System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
  12.  
  13. int thumWidth = width; //缩略图的宽度
  14. int thumHeight = height; //缩略图的高度
  15.  
  16. int x = ;
  17. int y = ;
  18.  
  19. int originalWidth = originalImage.Width; //原始图片的宽度
  20. int originalHeight = originalImage.Height; //原始图片的高度
  21. switch (model)
  22. {
  23. case "HW": //指定高宽缩放,可能变形
  24. break;
  25. case "W": //指定宽度,高度按照比例缩放
  26. thumHeight = originalImage.Height * width / originalImage.Width;
  27. break;
  28. case "H": //指定高度,宽度按照等比例缩放
  29. thumWidth = originalImage.Width * height / originalImage.Height;
  30. break;
  31. case "Cut":
  32. if ((double)originalImage.Width / (double)originalImage.Height > (double)thumWidth / (double)thumHeight)
  33. {
  34. originalHeight = originalImage.Height;
  35. originalWidth = originalImage.Height * thumWidth / thumHeight;
  36. y = ;
  37. x = (originalImage.Width - originalWidth) / ;
  38. }
  39. else
  40. {
  41. originalWidth = originalImage.Width;
  42. originalHeight = originalWidth * height / thumWidth;
  43. x = ;
  44. y = (originalImage.Height - originalHeight) / ;
  45. }
  46. break;
  47. default:
  48. break;
  49. }
  50.  
  51. //新建一个bmp图片
  52. System.Drawing.Image bitmap = new System.Drawing.Bitmap(thumWidth, thumHeight);
  53. //新建一个画板
  54. System.Drawing.Graphics graphic = System.Drawing.Graphics.FromImage(bitmap);
  55. //设置高质量查值法
  56. graphic.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
  57. //设置高质量,低速度呈现平滑程度
  58. graphic.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  59. //清空画布并以透明背景色填充
  60. graphic.Clear(System.Drawing.Color.Transparent);
  61. //在指定位置并且按指定大小绘制原图片的指定部分
  62. graphic.DrawImage(originalImage, new System.Drawing.Rectangle(, , thumWidth, thumHeight)
  63. , new System.Drawing.Rectangle(x, y, originalWidth, originalHeight), System.Drawing.GraphicsUnit.Pixel);
  64. try
  65. {
  66. bitmap.Save(thumNailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
  67. }
  68. catch (Exception ex)
  69. {
  70.  
  71. throw ex;
  72. }
  73. finally
  74. {
  75. originalImage.Dispose();
  76. bitmap.Dispose();
  77. graphic.Dispose();
  78. }
  79. }

asp.net生成缩略图的更多相关文章

  1. ASP.NET生成缩略图的代码

    01.        // <summary> 02.        /// 生成缩略图 03.        /// </summary> 04.        /// &l ...

  2. asp.net生成缩略图、文字图片水印

    /// <summary> /// 会产生graphics异常的PixelFormat /// </summary> private static PixelFormat[] ...

  3. ASP.NET 生成缩略图片类分享

    /// <summary> /// 生成图片缩略图 指定文件路径生成 /// </summary> public static void SaveImage(String fu ...

  4. asp.net中生成缩略图并添加版权实例代码

    这篇文章介绍了asp.net中生成缩略图并添加版权实例代码,有需要的朋友可以参考一下 复制代码代码如下: //定义image类的对象 Drawing.Image image,newimage; //图 ...

  5. ASP组件AspJpeg(加水印)生成缩略图等使用方法

    ASP组件AspJpeg(加水印)生成缩略图等使用方法 作者: 字体:[增加 减小] 类型:转载 时间:2012-12-17我要评论 ASPJPEG是一款功能相当强大的图象处理组件,用它可以轻松地做出 ...

  6. asp.net——上传图片生成缩略图

    上传图片生成缩略图,原图和缩略图地址一样的时候缩略图会把原图覆盖掉 /// <summary> /// 生成缩略图 /// </summary> /// <param n ...

  7. .net又一个生成缩略图的方法,不变形

    生成缩略图是一个十分常用功能,找到了一个方法,重写部分代码,实用又好用,.net又一个生成缩略图的方法,不变形 /// <summary> /// 为图片生成缩略图 by 何问起 /// ...

  8. C#上传图片和生成缩略图以及图片预览

    因工作需要,上传图片要增加MIME类型验证和生成较小尺寸的图片用于浏览.根据网上代码加以修改做出如下效果图: 前台代码如下: <html xmlns="http://www.w3.or ...

  9. [原创]超强C#图片上传,加水印,自动生成缩略图源代码

    <%@ Page Language=“C#“ AutoEventWireup=“true“ %> <%@ Import Namespace=“System“ %> <%@ ...

随机推荐

  1. 纯CSS气泡效果

    http://www.liaoxuefeng.com/article/0013738937970388b6b6e5e5e2f4e21b65b01807c84ddf6000

  2. smarty中增加类似foreach的功能自动加载数据方法

    第一步:在Smarty_Compiler.class.php的_compile_tag函数中增加: 复制代码 代码如下: //加载数据的开始标签case 'load': $this->_push ...

  3. word2013 blog test

    测试一:style里的内容能保存吗?: int        read; byte *    buf; int        tries; int        read; byte *    buf ...

  4. 微软 WP 新策略:非开发者账号免费解锁 1 部手机(转)

    好消息,微软现在非开发者用户解锁1部WP8手机和部署两个应用,即我们只 需注册个windows live账号即可解锁我们的WP8了!! 准备工作:1.需要一台装有windows8 64位系统的电脑. ...

  5. Cheatsheet: 2015 07.01 ~ 07.31

    Java JBoss Drools Tutorial for Beginners Other A Simple File System RebornDB: the Next Generation Di ...

  6. php手册杂记

    1, strcmp()是比较两个字符串的大小,两个字符串相同时返回0,第一个字符串大于第二个字符串时返回一个正值,否则返回负值.比较两个字符串的算法是:逐个比较两个串中对应的字符,字符大小按照ASCI ...

  7. microstrip(微带线)、stripline(带状线) 指什么?

    带状线:走在内层(stripline/double stripline),埋在PCB内部的带状走线,如下图所示 蓝色部分是导体,绿色部分是PCB的绝缘电介质,stripline是嵌在两层导体之间的带状 ...

  8. fifter常见的运用场景

    没配置过滤器 package servlet; import java.io.IOException; import javax.servlet.ServletException; import ja ...

  9. M1卡介绍

    本文整理自网络. M1卡是指菲利浦下属子公司恩智浦出品的芯片缩写,全称为NXP Mifare1系列,常用的有S50及S70两种型号,目前都有国产芯片与其兼容,属于非接触式IC卡.最为重要的优点是可读可 ...

  10. windows递归拷贝(或删除等操作)文件

    SHFileOperation 以拷贝为例. CString strFrom = ....._T("src");CString strTo = ....._T("dest ...