手机
当前位置:查字典教程网 >编程开发 >asp.net教程 >ASP.NET中高质量缩略图的生成代码
ASP.NET中高质量缩略图的生成代码
摘要:privateSizeNewSize(intmaxWidth,intmaxHeight,intwidth,intheight){double...

privateSizeNewSize(intmaxWidth,intmaxHeight,intwidth,intheight)

{

doublew=0.0;

doubleh=0.0;

doublesw=Convert.ToDouble(width);

doublesh=Convert.ToDouble(height);

doublemw=Convert.ToDouble(maxWidth);

doublemh=Convert.ToDouble(maxHeight);

if(sw<mw&&sh<mh)

{

w=sw;

h=sh;

}

elseif((sw/sh)>(mw/mh))

{

w=maxWidth;

h=(w*sh)/sw;

}

else

{

h=maxHeight;

w=(h*sw)/sh;

}

returnnewSize(Convert.ToInt32(w),Convert.ToInt32(h));

}

privatevoidSendSmallImage(stringfileName,intmaxWidth,intmaxHeight)

{

System.Drawing.Imageimg=System.Drawing.Image.FromFile(Server.MapPath(fileName));

System.Drawing.Imaging.ImageFormatthisFormat=img.RawFormat;

SizenewSize=NewSize(maxWidth,maxHeight,img.Width,img.Height);

BitmapoutBmp=newBitmap(newSize.Width,newSize.Height);

Graphicsg=Graphics.FromImage(outBmp);

//设置画布的描绘质量

g.CompositingQuality=CompositingQuality.HighQuality;

g.SmoothingMode=SmoothingMode.HighQuality;

g.InterpolationMode=InterpolationMode.HighQualityBicubic;

g.DrawImage(img,newRectangle(0,0,newSize.Width,newSize.Height),

0,0,img.Width,img.Height,GraphicsUnit.Pixel);

g.Dispose();

if(thisFormat.Equals(ImageFormat.Gif))

{

Response.ContentType="image/gif";

}

else

{

Response.ContentType="image/jpeg";

}

//以下代码为保存图片时,设置压缩质量

EncoderParametersencoderParams=newEncoderParameters();

long[]quality=newlong[1];

quality[0]=100;

EncoderParameterencoderParam=newEncoderParameter(System.Drawing.Imaging.Encoder.Quality,quality);

encoderParams.Param[0]=encoderParam;

//获得包含有关内置图像编码解码器的信息的ImageCodecInfo对象。

ImageCodecInfo[]arrayICI=ImageCodecInfo.GetImageEncoders();

ImageCodecInfojpegICI=null;

for(intx=0;x<arrayICI.Length;x++)

{

if(arrayICI[x].FormatDescription.Equals("JPEG"))

{

jpegICI=arrayICI[x];//设置JPEG编码

break;

}

}

if(jpegICI!=null)

{

outBmp.Save(Response.OutputStream,jpegICI,encoderParams);

}

else

{

outBmp.Save(Response.OutputStream,thisFormat);

}

img.Dispose();

outBmp.Dispose();

}

【ASP.NET中高质量缩略图的生成代码】相关文章:

在ASP.NET中重写URL的代码

ASP.net 生成缩略图的实例源代码

在.NET中利用XMLHTTP下载文件的代码

C# 生成高质量缩略图程序—终极算法

ASP.NET 创建带事件的用户控件

ASP.NET 高性能分页代码

ASP.NET页面之间传递参数的几种方法

ASP.NET 输出缓存移除的实例代码

ASP.NET常用代码

ASP.NET 2.0中预设的cookie

精品推荐
分类导航