/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="srcPath">源图路径(物理路径)</param>
/// <param name="newPath">缩略图路径(物理路径)</param>
/// <param name="maxWH">最大的宽/高度</param>
public static void MakeThumb(string srcPath, string newPath, int maxWH)
{
try
{
using (Image img = Image.FromFile(srcPath))
{
int nw = img.Width, nh = img.Height;
int sw = img.Width, sh = img.Height; if (sw > sh && sw > maxWH)
{
nw = maxWH;
nh = Convert.ToInt32(sh / (sw / nw));
}
else if (sh > sw && sh > maxWH)
{
nh = maxWH;
nw = Convert.ToInt32(sw / (sh / nh));
} using (Image bitmap = new System.Drawing.Bitmap(nw, nh))
{
using (Graphics g = System.Drawing.Graphics.FromImage(bitmap))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;//设置高质量插值法
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
g.Clear(Color.Transparent);//清空画布并以透明背景色填充
g.DrawImage(img, new Rectangle(0, 0, nw, nh), new Rectangle(0, 0, sw, sh), GraphicsUnit.Pixel);//在指定位置并且按指定大小绘制原图片的指定部分
bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
catch (System.Exception e)
{
throw e;
}
}
/// 生成缩略图
/// </summary>
/// <param name="srcPath">源图路径(物理路径)</param>
/// <param name="newPath">缩略图路径(物理路径)</param>
/// <param name="maxWH">最大的宽/高度</param>
public static void MakeThumb(string srcPath, string newPath, int maxWH)
{
try
{
using (Image img = Image.FromFile(srcPath))
{
int nw = img.Width, nh = img.Height;
int sw = img.Width, sh = img.Height; if (sw > sh && sw > maxWH)
{
nw = maxWH;
nh = Convert.ToInt32(sh / (sw / nw));
}
else if (sh > sw && sh > maxWH)
{
nh = maxWH;
nw = Convert.ToInt32(sw / (sh / nh));
} using (Image bitmap = new System.Drawing.Bitmap(nw, nh))
{
using (Graphics g = System.Drawing.Graphics.FromImage(bitmap))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;//设置高质量插值法
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
g.Clear(Color.Transparent);//清空画布并以透明背景色填充
g.DrawImage(img, new Rectangle(0, 0, nw, nh), new Rectangle(0, 0, sw, sh), GraphicsUnit.Pixel);//在指定位置并且按指定大小绘制原图片的指定部分
bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
catch (System.Exception e)
{
throw e;
}
}
解决方案 »
- SqlDataSource更新不了
- .net 有办法直接生成JAR、UMD、CHM这些格式么?
- AJAX传送一个值给服务器页面,生成图片 怎么返回?
- 如何先从服务器端取出服务器的系统时间,然后再在页面上显示出来,并像时钟一样1秒1秒走动?
- 网页上的map区域挡住下拉菜单的问题
- 左右,嵌套层次架构框架问题 帮帮忙
- ASP.NET中的连动无刷新问题!
- 给session付个值是地址传递还是值传递
- 新建的一个ASP.NET群 [1901950] 一起学习!
- 我想在页面关闭时记录下当时的时间等资料,可是ONUNLOAD事件在页面跳转和关闭时都会响应,我希望只在页面关闭时响应,如何是好啊!
- ds.Tables["news"].Rows.Count 始终大于等于1
- devexpress皮肤设置 webform
/// <summary>
/// 生成缩略图
/// </summary>
/// <param name="srcPath">源图路径(物理路径)</param>
/// <param name="newPath">缩略图路径(物理路径)</param>
/// <param name="maxWH">最大的宽/高度</param>
public static void MakeThumb(string srcPath, string newPath, int maxWH)
{
try
{
using (Image img = Image.FromFile(srcPath))
{
int nw = img.Width, nh = img.Height;
int sw = img.Width, sh = img.Height; if (sw > sh && sw > maxWH)
{
nw = maxWH;
nh = Convert.ToInt32(sh / (sw / nw));
}
else if (sh > sw && sh > maxWH)
{
nh = maxWH;
nw = Convert.ToInt32(sw / (sh / nh));
} using (Image bitmap = new System.Drawing.Bitmap(nw, nh))
{
using (Graphics g = System.Drawing.Graphics.FromImage(bitmap))
{
g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;//设置高质量插值法
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;//设置高质量,低速度呈现平滑程度
g.Clear(Color.Transparent);//清空画布并以透明背景色填充
g.DrawImage(img, new Rectangle(0, 0, nw, nh), new Rectangle(0, 0, sw, sh), GraphicsUnit.Pixel);//在指定位置并且按指定大小绘制原图片的指定部分
bitmap.Save(newPath, System.Drawing.Imaging.ImageFormat.Jpeg);
}
}
}
}
catch (System.Exception e)
{
throw e;
}
}