转载:asp.net生成缩略图通用函数(支持多种生成方式)
文章转载自书生的Blog,原地址是http://www.cnblogs.com/pbwf/archive/2006/03/31/363981.html
感觉十分好用,比较自己写的更全面也更仔细,就放弃了自己写的代码,直接用了。记录一下代码:
/// 生成缩略图
/// </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生成缩略图通用函数(支持多种生成方式)相关推荐
- asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
在网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.n ...
- Asp.net生成缩略图
当我们要上传图片的时候,往往需要生成缩略图,以往我们要使用第三方控件才能完成.在asp.net中用下面方法轻松搞定: <script language="VB" runat= ...
- .net生成缩略图,支持等比例缩放,加水印
using System; using System.IO; using System.Drawing; public partial class study_test : System.Web.UI ...
- asp.net生成缩略图、文字图片水印
1 /// <summary> 2 /// 会产生graphics异常的PixelFormat 3 /// </summary> 4 private static PixelF ...
- ASP.NET生成缩略图类C#代码
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Dra ...
- php图片生成缩略图_PHP实现生成图片缩略图函数
本文主要和大家介绍了PHP基于GD库实现的生成图片缩略图函数,涉及php针对图片属性相关操作技巧,需要的朋友可以参考下,希望能帮助到大家. /** * 生成缩略图函数(支持图片格式:gif.jpeg. ...
- [导入]ASP.NET生成高质量缩略图通用函数(c#代码)
网站开发时,生成缩略图是一个非常常见和实用的功能.以前在asp里只能借助com组件实现,现在在.net里可以利用框架的强大的类库轻松实现.下面帖出完整的代码(带详细注释),参考了网上的一些文章及.ne ...
- asp.net生成高质量缩略图通用函数
Code 1 /**//// <summary> 2 /// 生成缩略图 3 /// </summary> 4 /// < ...
- 在ASP.NET中上传图片并生成缩略图
在ASP.NET中上传图片并生成缩略图,可以参照下列代码: private void btnUploadPicture_Click(object sender, System.EventArgs e) ...
最新文章
- python控制git版本库
- 周长最短面积最大_圆内接三角形中,正三角形周长最大值的证明
- 路由器OSPF协议配置命令一
- Java的基础数据类型
- 数字图像处理matlab实验对图像复原,数字图像处理实验07图像的复原处理
- 文献记录(part63)--跨模态社交图像聚类
- C++踩坑之连接mysql数据库
- 项目总结:华南师范大学校园开发教育android客户端总结
- 云南大学软件测试,软件测试大赛云南省省赛在软件学院如期举行
- 西刺代理python_python网络爬虫实战——实时抓取西刺免费代理ip-Go语言中文社区...
- 单片机c语言轻松入门 pdf,单片机系统C语言轻松入门.pdf
- cmd net 命令
- linux更改jdk版本
- echarts横向柱状图
- Mac如何共享wifi热点
- 高级软件工程师必备的五大技能
- ⌨RK61键盘使用方法
- CSDN开发者周刊第 21期:Wi-Fi 之父辞世,谷歌服务器再次全球宕机;Windows 10 将支持安卓应用
- Allegro基本规则设置指导书之Physical规则设置
- MVC三层架构的模式