ASP.NET中生成缩略图的代码
先必须导入 using System.Drawing;
 
  1. // <summary>
  2. /// 生成缩略图
  3. /// </summary>
  4. /// <param name="originalImagePath">源图路径</param>
  5. /// <param name="thumbnailPath">缩略图路径</param>
  6. /// <param name="width">缩略图宽度</param>
  7. /// <param name="height">缩略图高度</param>
  8. /// <param name="mode">生成缩略图的方式:HW指定高宽缩放(可能变形);W指定宽,高按比例 H指定高,宽按比例 Cut指定高宽裁减(不变形)</param>  
  9. /// <param name="mode">要缩略图保存的格式(gif,jpg,bmp,png) 为空或未知类型都视为jpg</param>  
  10. public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode, string imageType)
  11. {
  12. Image originalImage = Image.FromFile(originalImagePath);
  13. int towidth = width;
  14. int toheight = height;
  15. int x = 0;
  16. int y = 0;
  17. int ow = originalImage.Width;
  18. int oh = originalImage.Height;
  19. switch (mode)
  20. {
  21. case "HW"://指定高宽缩放(可能变形)        
  22. break;
  23. case "W"://指定宽,高按比例          
  24. toheight = originalImage.Height * width / originalImage.Width;
  25. break;
  26. case "H"://指定高,宽按比例
  27. towidth = originalImage.Width * height / originalImage.Height;
  28. break;
  29. case "Cut"://指定高宽裁减(不变形)        
  30. if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
  31. {
  32. oh = originalImage.Height;
  33. ow = originalImage.Height * towidth / toheight;
  34. y = 0;
  35. x = (originalImage.Width - ow) / 2;
  36. }
  37. else
  38. {
  39. ow = originalImage.Width;
  40. oh = originalImage.Width * height / towidth;
  41. x = 0;
  42. y = (originalImage.Height - oh) / 2;
  43. }
  44. break;
  45. default:
  46. break;
  47. }
  48. //新建一个bmp图片
  49. Image bitmap = new System.Drawing.Bitmap(towidth, toheight);
  50. //新建一个画板
  51. Graphics g = System.Drawing.Graphics.FromImage(bitmap);
  52. //设置高质量插值法
  53. g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
  54. //设置高质量,低速度呈现平滑程度
  55. g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
  56. //清空画布并以透明背景色填充
  57. g.Clear(Color.Transparent);
  58. //在指定位置并且按指定大小绘制原图片的指定部分
  59. g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
  60. new Rectangle(x, y, ow, oh),
  61. GraphicsUnit.Pixel);
  62. try
  63. {
  64. //以jpg格式保存缩略图
  65. switch (imageType.ToLower())
  66. {
  67. case "gif":
  68. bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Gif);
  69. break;
  70. case "jpg":
  71. bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
  72. break;
  73. case "bmp":
  74. bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Bmp);
  75. break;
  76. case "png":
  77. bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Png);
  78. break;
  79. default:
  80. bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
  81. break;
  82. }
  83. }
  84. catch (System.Exception e)
  85. {
  86. throw e;
  87. }
  88. finally
  89. {
  90. originalImage.Dispose();
  91. bitmap.Dispose();
  92. g.Dispose();
  93. }
  94. }

ASP.NET中生成缩略图的代码相关推荐

  1. 【顶】Asp无组件生成缩略图(1)

    首先,我们知道在页面中显示图片是如下代码: <img src="pic.gif" border="0" width="300" hei ...

  2. java将图片转成缩略图,将图片生成缩略图Java代码实现

    在工作中经常会遇到图片处理相关的需求,比如说一些图片网站只展示相关的缩略图,而真实的图片可能很大而不是直接展示.所以就需要在上传相关的图片后直接对图片进行处理生成相关的缩略图.实现代码如下: impo ...

  3. 文件上传以及生成缩略图的代码

    简单的文件上传的代码 html页面的代码 <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"&g ...

  4. java 上传图片 生成缩略图_将图片生成缩略图Java代码实现

    在工作中经常会遇到图片处理相关的需求,比如说一些图片网站只展示相关的缩略图,而真实的图片可能很大而不是直接展示.所以就需要在上传相关的图片后直接对图片进行处理生成相关的缩略图.实现代码如下: impo ...

  5. 如何在ASP.NET中生成HTML5离线Web应用

    传统的Web应用程序有一个很大的症结是当用户的网络连接不好时,应用会加载失败,为了 解决这一问题,HTML5中引入了Web的离线工作的功能.离线功能使得Web应用程序类似于本机应用程序,当断开网络连接 ...

  6. asp.net上传图片自动生成缩略图功能代码

    if (FileUpload1.FileName.ToString() == "") { Label3.Text = "请选择图片!"; } else { Bo ...

  7. ASP.Net中生成静态HTML页

    越来越多的网站现在将过去的动态网页生成了静态的HTML页,这样做的好处有很多,比如减轻服务器的压力,利于搜索引擎的收录.......在ASP时代利用ADO+FSO将数据库中的内容生成静态的页面,在.N ...

  8. C++ 中生成随机数的代码

    [知识点] 在C++中,可直接调用rand()函数生成随机数.不过,在调用rand()函数之前,需要先使用srand(time(0))函数设置随机数种子. 如果没有使用srand(time(0))函数 ...

  9. ASP.NET中常用的js代码

    3.在button的onClick事件中输入 this.RegisterClientScriptBlock("e","<scriptlanguage=javascr ...

最新文章

  1. 面试:TCP协议经典十五连问!
  2. 简约才是王道? CardView 的使用
  3. 转载-如何应对在线故障
  4. 网页渲染的颜色竟然和设定值的不同!Chrome 61+色差解决办法
  5. 在Tomcat中部署seam工程
  6. python mysql操作_Python的MySQL操作
  7. Oracle 练习题P256
  8. CentOS 挂载 exfat 和 FAT32格式的U盘
  9. swift——富文本文字的简单使用
  10. [NOIP2013]记数问题
  11. Matlab遗传算法工具箱(gaot)下载及安装
  12. 应届生简历如何写实习经历?
  13. java:数据结构面试题
  14. 【2022最新Java面试宝典】—— Memcache面试题(23道含答案)
  15. 弧形银幕电影的成像原理
  16. Ubuntu bpy(blender)的pip安装
  17. ubuntu快捷键备忘
  18. python模糊图像判断
  19. 抖音html数字9,抖音687是什么意思
  20. CSS实现三角形原理及过程

热门文章

  1. Spring Cloud笔记
  2. Golang的匿名函数和闭包
  3. POJ-排序-归并排序与逆序对
  4. 代码审计之CVE-2018-7600-Drupal远程代码执行漏洞-Render API
  5. javaWeb项目中获取ip为 0:0:0:0:0:0:0:1
  6. visual studio code配置项
  7. java使用MD5加密
  8. __block 和 __weak的区别
  9. Android 自定义组件随着手指自动画圆
  10. 用代码创建工程并添加内容