使用系统.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()
{
返回假;
}