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#生成缩略图的知识点: 1. 图片按比例缩小:在生成缩略...
根据提供的代码片段,我们可以详细解析如何在C#中实现一个生成缩略图的函数,以及该函数背后的逻辑和技术要点。 ### 标题解析:“C# 生成缩略图函数” 此标题明确指出函数的目的:使用C#编程语言来生成图像的缩略...
在C#编程中,生成缩略图和添加水印是常见的图像处理任务,这主要涉及到对图像文件的操作和处理。以下是一些相关的知识点: 1. **C# 图像处理库**: C#中用于图像处理的主要库是System.Drawing命名空间,它提供了...
原类生成的缩略图的问题在于:高或者宽可能会大于需求值。比如,我需要的图片宽为150,高为120,当原图 * 高为150,宽为150或差距不大时,生成的图片不会有变化,即也是高150,宽150,这样,当把这些图片显示到网页...
在C#编程语言中,处理图像文件和生成缩略图是一项常见的需求,尤其是在涉及图形用户界面(GUI)的应用程序开发中。以下是对“C#中打开文件和自动生成缩略图”这一主题的深入解析,涵盖了如何使用C#中的Winforms来...
本文将深入探讨如何使用C#进行批量生成缩略图,并结合提供的代码资源——"Thumbnail.cs"和"Thumbnail.dll",分析其实现方式。 首先,我们要理解什么是缩略图。缩略图是一种较小尺寸的图片,通常用于预览或节省存储...
该类非常好用,可以直接生成缩略图的类,(string sourceImage, string imageMapth, int width, int height, string mode) sourceImage:源图 imageMapth:缩略图 width:宽 height:高 mode:模式
c# 生成图片缩略图
当我们谈论"C#批量生成缩略图,指定位置图片位置"时,这个主题涉及到图像处理和文件操作,是C#编程中常见但又具有挑战性的任务。在实际应用中,例如在网站开发、照片库管理软件或者多媒体应用程序中,都需要对大量...
C#把Word和Excel生成缩略图示例代码-附带Aspose.Cells和Aspose.Words插件 使用 Aspose.Cells 生成Excel缩略图 使用 Aspose.Words 生成Word缩略图 项目中 bin目录下的 Aspose.Cells.dll 和 Aspose.Words.dll 是可...
C#生成缩略图,C#缩略图,C#水印 很不错的 【核心代码】 文件清单 └── SarmtImage ├── App_Code │ └── SarmtImage.cs ├── App_Data ├── image │ ├── imageH.jpg │ ├── imageW_H.jpg │...
本篇文章将深入探讨如何使用C#编程语言来实现这个功能,主要围绕标题"**C#载取网页生成缩略图**"展开,结合描述中的关键词"网页生成图片"、"网页快照"、"网页抓图"、"网页载图"和"页面缩略图",以及压缩包中的文件`...
### C#实现生成缩略图并保存到临时区 在现代Web开发中,图片处理是一项常见且重要的任务。尤其在需要快速预览或减少图片加载时间的应用场景中,生成缩略图变得尤为关键。本文将详细介绍如何使用C#语言来实现生成...
在IT行业中,生成缩略图是一项常见的任务,特别是在图像处理、网页设计以及各种应用程序中。缩略图的主要目的是为了快速预览大图像或一组图像,节省用户的时间和带宽。本压缩包提供了一个批量生成缩略图工具的源代码...
以上就是使用C#生成缩略图的基本步骤。实际开发中,你可能还需要考虑异常处理、内存管理和优化性能等方面的问题。例如,对于大量图像处理,可以使用流式处理以减少内存占用。另外,如果你的项目需要跨平台,可以考虑...
在C#编程中,生成图片缩略图和添加水印是常见的图像处理任务,这在网站开发、应用程序设计以及各种媒体展示中都有广泛的应用。本文将深入探讨如何使用C#来实现这两个功能。 首先,我们来看一下如何创建图片的缩略图...
第一种 代码如下: /**//// <summary> /// 生成缩略图 /// </summary> /// ”originalImagePath”>源图路径(物理路径)</param> /// ”thumbnailPath”>缩略图路径(物理路径)</param> /// ”width”>缩略图宽度...
- 除了生成缩略图,描述中还提到了在C# WinForm应用程序中打开PDF文件的方法。 - 第一种方法是使用Adobe Reader的COM组件(`axAcroPDF1`),通过指定文件路径显示PDF。 - 第二种方法是不依赖Adobe Reader,而是...