asp.net 根据图片路径生成缩略图
来源:互联网 发布:淘宝联盟上商品优惠券 编辑:程序博客网 时间:2024/04/29 00:37
/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="originalImagePath">原图位置</param>
/// <param name="thumbnailPath">缩略图保存位置</param>
/// <param name="width">需要改变的大小(宽高相同的正方形)</param>
public void CreateMinImageAndDel(string originalImagePath, string thumbnailPath, int width,int height)
{
Graphics draw = null;
string FileExt = "";
if (!Directory.Exists(thumbnailPath))
{
Directory.CreateDirectory(thumbnailPath);
}
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
string photoExtesion = System.IO.Path.GetExtension(originalImagePath).ToLower();
//缩略图位置
int toX = 0;
int toY = 0;
//原图的宽和高
int ow = originalImage.Width;
int oh = originalImage.Height;
//缩略图的宽和高
int toWidth = 0;
int toHeight = 0;
// 宽高比例,的两种特殊情况处理
if (ow < oh)
{
toWidth = Convert.ToInt32(Convert.ToDouble(ow) * (Convert.ToDouble(width) / Convert.ToDouble(oh)));
toHeight = width;
// 计算显示位置
toX = (toHeight - toWidth) / 2;
}
else
{
toWidth = width;
toHeight = Convert.ToInt32(Convert.ToDouble(oh) * (Convert.ToDouble(width) / Convert.ToDouble(ow)));
// 计算显示位置
toY = (toWidth - toHeight) / 2;
}
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(width, width);
System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(width, width);
//新建一个画板
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.Clear(System.Drawing.Color.White);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(toX, toY, toWidth, toHeight));
try
{
//以jpg格式保存缩略图
FileExt = Path.GetFileNameWithoutExtension(originalImagePath);
//用新建立的image对象拷贝bitmap对象 让g对象可以释放资源
draw = Graphics.FromImage(bitmap2);
draw.DrawImage(bitmap, 0, 0);
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
//保存调整在这里即可
bitmap2.Save(thumbnailPath + FileExt + ".png", System.Drawing.Imaging.ImageFormat.Png);
}
/// 生成缩略图
/// </summary>
/// <param name="originalImagePath">原图位置</param>
/// <param name="thumbnailPath">缩略图保存位置</param>
/// <param name="width">需要改变的大小(宽高相同的正方形)</param>
public void CreateMinImageAndDel(string originalImagePath, string thumbnailPath, int width,int height)
{
Graphics draw = null;
string FileExt = "";
if (!Directory.Exists(thumbnailPath))
{
Directory.CreateDirectory(thumbnailPath);
}
System.Drawing.Image originalImage = System.Drawing.Image.FromFile(originalImagePath);
string photoExtesion = System.IO.Path.GetExtension(originalImagePath).ToLower();
//缩略图位置
int toX = 0;
int toY = 0;
//原图的宽和高
int ow = originalImage.Width;
int oh = originalImage.Height;
//缩略图的宽和高
int toWidth = 0;
int toHeight = 0;
// 宽高比例,的两种特殊情况处理
if (ow < oh)
{
toWidth = Convert.ToInt32(Convert.ToDouble(ow) * (Convert.ToDouble(width) / Convert.ToDouble(oh)));
toHeight = width;
// 计算显示位置
toX = (toHeight - toWidth) / 2;
}
else
{
toWidth = width;
toHeight = Convert.ToInt32(Convert.ToDouble(oh) * (Convert.ToDouble(width) / Convert.ToDouble(ow)));
// 计算显示位置
toY = (toWidth - toHeight) / 2;
}
//新建一个bmp图片
System.Drawing.Image bitmap = new System.Drawing.Bitmap(width, width);
System.Drawing.Image bitmap2 = new System.Drawing.Bitmap(width, width);
//新建一个画板
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.Clear(System.Drawing.Color.White);
//在指定位置并且按指定大小绘制原图片的指定部分
g.DrawImage(originalImage, new System.Drawing.Rectangle(toX, toY, toWidth, toHeight));
try
{
//以jpg格式保存缩略图
FileExt = Path.GetFileNameWithoutExtension(originalImagePath);
//用新建立的image对象拷贝bitmap对象 让g对象可以释放资源
draw = Graphics.FromImage(bitmap2);
draw.DrawImage(bitmap, 0, 0);
}
catch (System.Exception e)
{
throw e;
}
finally
{
originalImage.Dispose();
bitmap.Dispose();
g.Dispose();
//保存调整在这里即可
bitmap2.Save(thumbnailPath + FileExt + ".png", System.Drawing.Imaging.ImageFormat.Png);
}
}
调用:
原图路径:
string url = Server.MapPath("images/TemporaryImage/BigPhoto/" + newname);
// 生成小图路径
string bcurl = Server.MapPath("images/TemporaryImage/SmallPhoto/");
CreateMinImageAndDel(url, bcurl, 180,180);
0 0
- asp.net 根据图片路径生成缩略图
- asp.net上传图片并生成缩略图
- ASP.NET 上传图片并生成缩略图
- asp.net上传图片并生成缩略图
- Asp.net上传图片并生成缩略图
- asp.net上传图片并生成缩略图
- asp.net 上传图片并生成缩略图
- asp.net 上传图片生成缩略图
- ASP.NET 上传图片并生成缩略图
- asp.net上传图片并生成缩略图
- Asp.net中图片生成缩略图
- asp.net上传图片生成缩略图
- asp.net图片上传及生成缩略图
- asp.net上传图片生成缩略图
- Asp.Net 高清图片缩略图生成
- asp.net上传图片并生成缩略图
- ASP.NET实现根据URL生成网页缩略图的方法
- ASP 图片,生成缩略图
- cookie学习总结
- 【编程珠玑】学习笔记3——性能
- 阿斯顿撒的
- android Toast大全(五种情形)建立属于你自己的Toast
- 浅谈linux内存管理机制
- asp.net 根据图片路径生成缩略图
- 收到短信广播,还原短信内容。
- Android ----waiting for debugger
- 用栈实现括号匹配检验(java)
- Linux 下 Redis 安装详解
- hd 2031 进制转换
- 时刻不停的工作,你将一事无成
- mac 开发者常用的工具
- ios--框架--微博骨架搭建