`

C#生成缩略图

    博客分类:
  • .Net
阅读更多
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Text;
using System.IO;
using System.Drawing;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        MakeSmallImg("F:\\myproject\\web\\2006092809470622.jpg", Server.MapPath(@"Photo\a.jpg"), 100, 100, "Cut");
    }

    /// <summary>
    /// 生成缩略图
    /// </summary>
    /// <param name="originalImagePath">源图路径(物理路径)</param>
    /// <param name="thumbnailPath">缩略图路径(物理路径)</param>
    /// <param name="width">缩略图宽度</param>
    /// <param name="height">缩略图高度</param>
    /// <param name="mode">生成缩略图的方式</param>  
    public void MakeSmallImg(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);

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

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

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

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

        //在指定位置并且按指定大小绘制原图片的指定部分
        g.DrawImage(originalImage, new Rectangle(0, 0, towidth, toheight),
          new Rectangle(x, y, ow, oh),
          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();
        }
    } 

}

 

分享到:
评论

相关推荐

    C#生成缩略图(图片按比例缩小 空白处用指定颜色填充)

    "C#生成缩略图" C#生成缩略图是指使用C#语言生成图片的缩略图,缩略图是指将原图片按比例缩小,并将空白处用指定颜色填充,并为缩略图加上边框。下面是关于C#生成缩略图的知识点: 1. 图片按比例缩小:在生成缩略...

    c# 生成缩略图函数

    根据提供的代码片段,我们可以详细解析如何在C#中实现一个生成缩略图的函数,以及该函数背后的逻辑和技术要点。 ### 标题解析:“C# 生成缩略图函数” 此标题明确指出函数的目的:使用C#编程语言来生成图像的缩略...

    C#生成缩略图,C#缩略图,C#水印

    在C#编程中,生成缩略图和添加水印是常见的图像处理任务,这主要涉及到对图像文件的操作和处理。以下是一些相关的知识点: 1. **C# 图像处理库**: C#中用于图像处理的主要库是System.Drawing命名空间,它提供了...

    asp.net绝对完美的生成缩略图的类(多种模式生成)

    原类生成的缩略图的问题在于:高或者宽可能会大于需求值。比如,我需要的图片宽为150,高为120,当原图 * 高为150,宽为150或差距不大时,生成的图片不会有变化,即也是高150,宽150,这样,当把这些图片显示到网页...

    C#中打开文件和自动生成缩略图

    在C#编程语言中,处理图像文件和生成缩略图是一项常见的需求,尤其是在涉及图形用户界面(GUI)的应用程序开发中。以下是对“C#中打开文件和自动生成缩略图”这一主题的深入解析,涵盖了如何使用C#中的Winforms来...

    C# 批量生成缩略图

    本文将深入探讨如何使用C#进行批量生成缩略图,并结合提供的代码资源——"Thumbnail.cs"和"Thumbnail.dll",分析其实现方式。 首先,我们要理解什么是缩略图。缩略图是一种较小尺寸的图片,通常用于预览或节省存储...

    C#生成缩略图类

    该类非常好用,可以直接生成缩略图的类,(string sourceImage, string imageMapth, int width, int height, string mode) sourceImage:源图 imageMapth:缩略图 width:宽 height:高 mode:模式

    c# 生成图片缩略图

    c# 生成图片缩略图

    C#批量生成缩略图,指定位置图片位置

    当我们谈论"C#批量生成缩略图,指定位置图片位置"时,这个主题涉及到图像处理和文件操作,是C#编程中常见但又具有挑战性的任务。在实际应用中,例如在网站开发、照片库管理软件或者多媒体应用程序中,都需要对大量...

    C#把Word和Excel生成缩略图示例代码Aspose

    C#把Word和Excel生成缩略图示例代码-附带Aspose.Cells和Aspose.Words插件 使用 Aspose.Cells 生成Excel缩略图 使用 Aspose.Words 生成Word缩略图 项目中 bin目录下的 Aspose.Cells.dll 和 Aspose.Words.dll 是可...

    C#缩略图,C#水印 C#语言基础

    C#生成缩略图,C#缩略图,C#水印 很不错的 【核心代码】 文件清单 └── SarmtImage ├── App_Code │ └── SarmtImage.cs ├── App_Data ├── image │ ├── imageH.jpg │ ├── imageW_H.jpg │...

    C#载取网页生成缩略图

    本篇文章将深入探讨如何使用C#编程语言来实现这个功能,主要围绕标题"**C#载取网页生成缩略图**"展开,结合描述中的关键词"网页生成图片"、"网页快照"、"网页抓图"、"网页载图"和"页面缩略图",以及压缩包中的文件`...

    C#实现生成缩略图并保存到临时区

    ### C#实现生成缩略图并保存到临时区 在现代Web开发中,图片处理是一项常见且重要的任务。尤其在需要快速预览或减少图片加载时间的应用场景中,生成缩略图变得尤为关键。本文将详细介绍如何使用C#语言来实现生成...

    一个批量生成缩略图工具的源代码

    在IT行业中,生成缩略图是一项常见的任务,特别是在图像处理、网页设计以及各种应用程序中。缩略图的主要目的是为了快速预览大图像或一组图像,节省用户的时间和带宽。本压缩包提供了一个批量生成缩略图工具的源代码...

    用C#轻松实现缩略图(源文件)

    以上就是使用C#生成缩略图的基本步骤。实际开发中,你可能还需要考虑异常处理、内存管理和优化性能等方面的问题。例如,对于大量图像处理,可以使用流式处理以减少内存占用。另外,如果你的项目需要跨平台,可以考虑...

    C#图片生成缩略图和图片水印

    在C#编程中,生成图片缩略图和添加水印是常见的图像处理任务,这在网站开发、应用程序设计以及各种媒体展示中都有广泛的应用。本文将深入探讨如何使用C#来实现这两个功能。 首先,我们来看一下如何创建图片的缩略图...

    c#生成图片缩略图的类(2种实现思路)

    第一种 代码如下: /**//// &lt;summary&gt; /// 生成缩略图 /// &lt;/summary&gt; /// ”originalImagePath”&gt;源图路径(物理路径)&lt;/param&gt; /// ”thumbnailPath”&gt;缩略图路径(物理路径)&lt;/param&gt; /// ”width”&gt;缩略图宽度...

    pdf生成缩略图

    - 除了生成缩略图,描述中还提到了在C# WinForm应用程序中打开PDF文件的方法。 - 第一种方法是使用Adobe Reader的COM组件(`axAcroPDF1`),通过指定文件路径显示PDF。 - 第二种方法是不依赖Adobe Reader,而是...

Global site tag (gtag.js) - Google Analytics