使用系統.IO;
使用系統.繪圖.成像;
私有無效Button1_ServerClick(物件發送者,System.EventArgs e)
{
圖形g=null;
System.Drawing.Image upimage=null;
System.Drawing.Image thumimg=null;
System.Drawing.Image simage=null;
點陣圖輸出文件=null;
嘗試
{
字串副檔名 = Path.GetExtension(File1.PostedFile.FileName).ToUpper();
字串檔名 = DateTime.Now.ToString("yyyyMMddhhmmss");
string Smallpath = Server.MapPath(".")+"/smallimg/";
string bigpath = Server.MapPath(".")+"/bigimg/";
int 寬度、高度、新寬度、新高度;
System.Drawing.Image.GetThumbnailImageAbort callb =new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
if(!Directory.Exists(小路徑))
Directory.CreateDirectory(小路徑);
if(!Directory.Exists(bigpath))
目錄.CreateDirectory(bigpath);
Stream upimgfile = File1.PostedFile.InputStream;
string simagefile = Server.MapPath("a8logo.jpg"); //要加浮水印的文件
simage=System.Drawing.Image.FromFile(simagefile);
upimage= System.Drawing.Image.FromStream(upimgfile); // 上傳的圖片
width = upimage.Width;
高度 = upimage.Height;
如果(寬度>高度)
{
新寬度=200;
newheight =(int)((double)height/(double)width * (double)newwidth);
}
別的
{
新高度=200;
newwidth=(int)((double)寬度/(double)高度*(double)newheight);
}
thumimg = upimage.GetThumbnailImage(newwidth,newheight,callb,IntPtr.Zero);
輸出檔=新位圖(upimage);
g=Graphics.FromImage(輸出檔);
g.DrawImage(simage,new 矩形(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel) ;
字串 newpath = 大路徑 + 檔名 + 副檔名; //原始圖路徑
字串 thumpath = 小路徑 + 檔名 + 副檔名; //沿路徑
輸出檔.保存(新路徑);
thumimg.Save(thumpath);
輸出檔案.Dispose();
}
捕獲(異常前)
{
扔前;
}
最後
{
如果(g!=空)
g.Dispose();
if(thumimg!=null)
thumimg.Dispose();
if(upimage!=null)
upimage.Dispose();
if(simage!=null)
simage.Dispose();
}
}
公共 bool ThumbnailCallback()
{
返回假;
}