System.IO 사용;
System.드로잉.이미징 사용;
개인 무효 Button1_ServerClick(개체 전송자, System.EventArgs e)
{
그래픽 g=null;
System.드로잉.이미지 upimage=null;
시스템.드로잉.이미지 thumimg=null;
시스템.드로잉.이미지 simage=null;
비트맵 출력파일=null;
노력하다
{
문자열 확장자 = Path.GetExtension(File1.PostedFile.FileName).ToUpper();
string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
string smallpath = Server.MapPath(".")+"/smallimg/";
string bigpath = Server.MapPath(".")+"/bigimg/";
int 너비, 높이, 새 너비, 새 높이;
System. Drawing.Image.GetThumbnailImageAbort callb =new System.드로잉.Image.GetThumbnailImageAbort(ThumbnailCallback);
if(!디렉토리.존재(작은 경로))
Directory.CreateDirectory(작은 경로);
if(!Directory.Exists(bigpath))
Directory.CreateDirectory(bigpath);
스트림 upimgfile = File1.PostedFile.InputStream;
string simagefile = Server.MapPath("a8logo.jpg"); //要加水印의 문자
simage=System.드로잉.Image.FromFile(simagefile);
upimage= System.드로잉.이미지.FromStream(upimgfile); //상위 이미지
width = upimage.Width;
높이 = upimage.Height;
if(너비>높이)
{
새로운 폭=200;
newheight =(int)((double)height/(double)width * (double)newwidth);
}
또 다른
{
새로운 높이=200;
newwidth=(int)((double)width/(double)height * (double)newheight);
}
thumimg = upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero);
출력파일=새 비트맵(upimage);
g=Graphics.FromImage(출력파일);
g.DrawImage(simage,new Rectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel) ;
string newpath = bigpath + 파일 이름 + 확장자; //원래始图路径
문자열 thumpath = 작은 경로 + 파일 이름 + 확장자; //缩略图路径
출력파일.저장(새 경로);
thumimg.Save(thumpath);
출력파일.Dispose();
}
catch(예외예외)
{
예를 던져;
}
마지막으로
{
if(g!=널)
g.Dispose();
if(thumimg!=null)
thumimg.Dispose();
if(upimage!=null)
upimage.Dispose();
if(simage!=null)
simage.Dispose();
}
}
공개 bool ThumbnailCallback()
{
거짓을 반환;
}