手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式
摘要://////生成缩略图//////源图路径(物理路径)///缩略图路径(物理路径)///缩略图宽度///缩略图高度///生成缩略图的方式pu...

///<summary>

///生成缩略图

///</summary>

///<paramname="originalImagePath">源图路径(物理路径)</param>

///<paramname="thumbnailPath">缩略图路径(物理路径)</param>

///<paramname="width">缩略图宽度</param>

///<paramname="height">缩略图高度</param>

///<paramname="mode">生成缩略图的方式</param>

publicstaticvoidMakeThumbnail(stringoriginalImagePath,stringthumbnailPath,intwidth,intheight,stringmode)

{

ImageoriginalImage=Image.FromFile(originalImagePath);

inttowidth=width;

inttoheight=height;

intx=0;

inty=0;

intow=originalImage.Width;

intoh=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图片

Imagebitmap=newSystem.Drawing.Bitmap(towidth,toheight);

//新建一个画板

Graphicsg=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(originalImage,newRectangle(0,0,towidth,toheight),

newRectangle(x,y,ow,oh),

GraphicsUnit.Pixel);

try

{

//以jpg格式保存缩略图

bitmap.Save(thumbnailPath,System.Drawing.Imaging.ImageFormat.Jpeg);

}

catch(System.Exceptione)

{

throwe;

}

finally

{

originalImage.Dispose();

bitmap.Dispose();

g.Dispose();

}

}

【asp.net生成高质量缩略图通用函数(c#代码),支持多种生成方式】相关文章:

c#生成缩略图不失真的方法

asp.net(C#) 生成随机验证码的代码

dz asp.net论坛中函数--根据Url获得源文件内容

asp.net AJAX实现无刷新获得数据

asp.net下实现支持文件分块多点异步上传的 Web Services

asp.net获取HTML表单File中的路径的方法

Asp.Net常用函数

asp.net 动态生成表格

asp.net 文章内容分页显示的代码

asp.net导出Excel类库代码分享

精品推荐
分类导航