文章转载自书生的Blog,原地址是http://www.cnblogs.com/pbwf/archive/2006/03/31/363981.html

感觉十分好用,比较自己写的更全面也更仔细,就放弃了自己写的代码,直接用了。记录一下代码:

        /**///// <summary>
        /// 生成缩略图
        /// </summary>
        /// <param name="originalImagePath">源图路径(物理路径)</param>
        /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
        /// <param name="width">缩略图宽度</param>
        /// <param name="height">缩略图高度</param>
        /// <param name="mode">生成缩略图的方式</param>    
        private static void MakeMiniature(string originalImagePath, string thumbnailPath, int width, int height, string mode)
        {
            System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);

            int towidth = width;
            int toheight = height;

            int x = 0;
            int y = 0;
            int ow = originalImage.Width;
            int oh = originalImage.Height;

            switch (mode)
            {
                case "HW"://指定高宽缩放(可能变形)                
                    break;
                case "W"://指定宽,高按比例                    
                    toheight = originalImage.Height * width / originalImage.Width;
                    break;
                case "H"://指定高,宽按比例
                    towidth = originalImage.Width * height / originalImage.Height;
                    break;
                case "Cut"://指定高宽裁减(不变形)                
                    if ((double)originalImage.Width / (double)originalImage.Height > (double)towidth / (double)toheight)
                    {
                        oh = originalImage.Height;
                        ow = originalImage.Height * towidth / toheight;
                        y = 0;
                        x = (originalImage.Width - ow) / 2;
                    }
                    else
                    {
                        ow = originalImage.Width;
                        oh = originalImage.Width * height / towidth;
                        x = 0;
                        y = (originalImage.Height - oh) / 2;
                    }
                    break;
                default:
                    break;
            }

            //新建一个bmp图片
            System.Drawing.Image bitmap = new System.Drawing.Bitmap(towidth, toheight);

            //新建一个画板
            System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bitmap);

            //设置高质量插值法
            g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;

            //设置高质量,低速度呈现平滑程度
            g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;

            //清空画布并以透明背景色填充
            g.Clear(System.Drawing.Color.Transparent);

            //在指定位置并且按指定大小绘制原图片的指定部分
            g.DrawImage(originalImage, new System.Drawing.Rectangle(0, 0, towidth, toheight),
                new System.Drawing.Rectangle(x, y, ow, oh),
                System.Drawing.GraphicsUnit.Pixel);

            try
            {
                //以jpg格式保存缩略图
                bitmap.Save(thumbnailPath, System.Drawing.Imaging.ImageFormat.Jpeg);
            }
            catch (System.Exception e)
            {
                throw e;
            }
            finally
            {
                originalImage.Dispose();
                bitmap.Dispose();
                g.Dispose();
            }
        }

转载于:https://www.cnblogs.com/KenBlove/articles/484129.html

转载:asp.net生成缩略图通用函数(支持多种生成方式)相关推荐

  1. asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式

    在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.n ...

  2. Asp.net生成缩略图

    当我们要上传图片的时候,往往需要生成缩略图,以往我们要使用第三方控件才能完成.在asp.net中用下面方法轻松搞定: <script language="VB" runat= ...

  3. .net生成缩略图,支持等比例缩放,加水印

    using System; using System.IO; using System.Drawing; public partial class study_test : System.Web.UI ...

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

    1 /// <summary> 2 /// 会产生graphics异常的PixelFormat 3 /// </summary> 4 private static PixelF ...

  5. ASP.NET生成缩略图类C#代码

    using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Dra ...

  6. php图片生成缩略图_PHP实现生成图片缩略图函数

    本文主要和大家介绍了PHP基于GD库实现的生成图片缩略图函数,涉及php针对图片属性相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. /** * 生成缩略图函数(支持图片格式:gif.jpeg. ...

  7. [导入]ASP.NET生成高质量缩略图通用函数(c#代码)

    网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.ne ...

  8. asp.net生成高质量缩略图通用函数

    Code  1 /**//// <summary>  2        /// 生成缩略图  3        /// </summary>  4        /// < ...

  9. 在ASP.NET中上传图片并生成缩略图

    在ASP.NET中上传图片并生成缩略图,可以参照下列代码: private void btnUploadPicture_Click(object sender, System.EventArgs e) ...

最新文章

  1. python控制git版本库
  2. 周长最短面积最大_圆内接三角形中,正三角形周长最大值的证明
  3. 路由器OSPF协议配置命令一
  4. Java的基础数据类型
  5. 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理
  6. 文献记录(part63)--跨模态社交图像聚类
  7. C++踩坑之连接mysql数据库
  8. 项目总结:华南师范大学校园开发教育android客户端总结
  9. 云南大学软件测试,软件测试大赛云南省省赛在软件学院如期举行
  10. 西刺代理python_python网络爬虫实战——实时抓取西刺免费代理ip-Go语言中文社区...
  11. 单片机c语言轻松入门 pdf,单片机系统C语言轻松入门.pdf
  12. cmd net 命令
  13. linux更改jdk版本
  14. echarts横向柱状图
  15. Mac如何共享wifi热点
  16. 高级软件工程师必备的五大技能
  17. ⌨RK61键盘使用方法
  18. CSDN开发者周刊第 21期:Wi-Fi 之父辞世,谷歌服务器再次全球宕机;Windows 10 将支持安卓应用
  19. Allegro基本规则设置指导书之Physical规则设置
  20. MVC三层架构的模式

热门文章

  1. 2.1/2.2 系统目录结构 2.3 ls命令 2.4 文件类型 2.5 alias命令
  2. 查看 -- tree
  3. 远控软件VNC***案例研究
  4. 看到一个flash做的超酷网站
  5. 玩转X-CTR100 l STM32F4 l DAC数字模拟转换
  6. Opencv笔记(五)——把鼠标当画笔
  7. Sublime Text3配置Lua运行环境
  8. java实现zip的压缩和解压(支持中文文件名)
  9. Linux下wine用法
  10. 6个用于大数据分析处理的最好工具