ASP上传图片并自动生成缩略图程
选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。 代码如下: px文件无标题页 px。cs文件usingSystem;usingSystem。Data;usingSystem。Configuration;usingSystem。Collections;usingSystem。 Web;usingSystem。Web。Security;usingSystem。Web。UI;usingSystem。Web。UI。WebCont...全部
选择图片上传成功后,取得已经存在服务器的文件生成缩略图,并且判断是否是图片类型的文件,这个的判断可以在程序中修改,本程序只是判断了“image/bmp”、“image/gif”、“image/pjpeg”三种类型。
代码如下: px文件无标题页 px。cs文件usingSystem;usingSystem。Data;usingSystem。Configuration;usingSystem。Collections;usingSystem。
Web;usingSystem。Web。Security;usingSystem。Web。UI;usingSystem。Web。UI。WebControls;usingSystem。Web。UI。
WebControls。WebParts;usingSystem。Web。UI。HtmlControls;usingSystem。IO;publicpartialclassupfile_ {protectedvoidPage_Load(objectsender,EventArgse){}protectedvoidButton1_Click(objectsender,EventArgse){if(FileUpload1。
HasFile){stringfileContentType=FileUpload1。PostedFile。ContentType;if(fileContentType=="image/bmp"||fileContentType=="image/gif"||fileContentType=="image/pjpeg"){stringname=FileUpload1。
PostedFile。FileName;//客户端文件路径FileInfofile=newFileInfo(name);stringfileName=file。Name;//文件名称stringfileName_s="s_"+file。
Name;//缩略图文件名称stringfileName_sy="sy_"+file。Name;//水印图文件名称(文字)stringfileName_syp="syp_"+file。Name;//水印图文件名称(图片)stringwebFilePath=Server。
MapPath("file/"+fileName);//服务器端文件路径stringwebFilePath_s=Server。MapPath("file/"+fileName_s);//服务器端缩略图路径stringwebFilePath_sy=Server。
MapPath("file/"+fileName_sy);//服务器端带水印图路径(文字)stringwebFilePath_syp=Server。MapPath("file/"+fileName_syp);//服务器端带水印图路径(图片)stringwebFilePath_sypf=Server。
MapPath("file/ g");//服务器端水印图路径(图片)if(!File。Exists(webFilePath)){try{FileUpload1。SaveAs(webFilePath);//使用SaveAs方法保存文件AddShuiYinWord(webFilePath,webFilePath_sy);AddShuiYinPic(webFilePath,webFilePath_syp,webFilePath_sypf);MakeThumbnail(webFilePath,webFilePath_s,130,130,"Cut");//生成缩略图方法Label1。
Text="提示:文件“"+fileName+"”成功上传,并生成“"+fileName_s+"”缩略图,文件类型为:"+FileUpload1。PostedFile。ContentType+",文件大小为:"+FileUpload1。
PostedFile。ContentLength+"B";}catch(Exceptionex){Label1。Text="提示:文件上传失败,失败原因:"+ex。Message;}}else{Label1。
Text="提示:文件已经存在,请重命名后上传";}}else{Label1。Text="提示:文件类型不符";}}}/**///////生成缩略图//////源图路径(物理路径)///缩略图路径(物理路径)///缩略图宽度///缩略图高度///生成缩略图的方式publicstaticvoidMakeThumbnail(stringoriginalImagePath,stringthumbnailPath,intwidth,intheight,stringmode){System。
Drawing。ImageoriginalImage=System。Drawing。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; }//新建一个bmp图片System。
Drawing。Imagebitmap=newSystem。Drawing。Bitmap(towidth,toheight);//新建一个画板System。Drawing。Graphicsg=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,newSystem。
Drawing。Rectangle(0,0,towidth,toheight),newSystem。Drawing。Rectangle(x,y,ow,oh),System。Drawing。GraphicsUnit。
Pixel);try{//以jpg格式保存缩略图bitmap。Save(thumbnailPath,System。Drawing。Imaging。ImageFormat。Jpeg);}catch(System。
Exceptione){throwe;}finally{originalImage。Dispose();bitmap。Dispose();g。Dispose();}}/**///////在图片上增加文字水印//////原服务器图片路径///生成的带文字水印的图片路径protectedvoidAddShuiYinWord(stringPath,stringPath_sy){stringaddText="测试水印";System。
Drawing。Imageimage=System。Drawing。Image。FromFile(Path);System。Drawing。Graphicsg=System。Drawing。Graphics。
FromImage(image);g。DrawImage(image,0,0,image。Width,image。Height);System。Drawing。Fontf=newSystem。
Drawing。Font("Verdana",16);System。Drawing。Brushb=newSystem。Drawing。SolidBrush(System。Drawing。Color。
Blue);g。DrawString(addText,f,b,15,15);g。Dispose();image。Save(Path_sy);image。Dispose();}/**///////在图片上生成图片水印//////原服务器图片路径///生成的带图片水印的图片路径///水印图片路径protectedvoidAddShuiYinPic(stringPath,stringPath_syp,stringPath_sypf){System。
Drawing。Imageimage=System。Drawing。Image。FromFile(Path);System。Drawing。ImagecopyImage=System。Drawing。
Image。FromFile(Path_sypf);System。Drawing。Graphicsg=System。Drawing。Graphics。FromImage(image);g。DrawImage(copyImage,newSystem。
Drawing。Rectangle(image。Width-copyImage。Width,image。Height-copyImage。Height,copyImage。Width,copyImage。
Height),0,0,copyImage。Width,copyImage。Height,System。Drawing。GraphicsUnit。Pixel);g。Dispose();image。
Save(Path_syp);image。Dispose();}}。收起