использование System.IO;
использование System.Drawing.Imaging;
частный void Button1_ServerClick (отправитель объекта, System.EventArgs e)
{
Графика г = ноль;
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("ггггММддччммсс");
строка smallpath = Server.MapPath(".")+"/smallimg/";
строка bigpath = Server.MapPath(".")+"/bigimg/";
int ширина, высота, новая ширина, новая высота;
System.Drawing.Image.GetThumbnailImageAbort callb = новый System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
if(!Directory.Exists(маленький путь))
Directory.CreateDirectory(малый путь);
если(!Directory.Exists(большой путь))
Directory.CreateDirectory(большой путь);
Поток upimgfile = File1.PostedFile.InputStream;
строка 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 Rectangle(upimage.Width-simage.Width,upimage.Height-simage.Height,upimage.Width,upimage.Height),0,0,upimage.Width,upimage.Height,GraphicsUnit.Pixel) ;
строка newpath = bigpath + имя файла + расширение; //原始图路径
строка thumpath = smallpath + имя файла + расширение; //缩略图路径
выходной файл.Сохранить (новый путь);
thumimg.Save(путь);
выходной файл.Dispose();
}
поймать (исключение ex)
{
бросить бывшего;
}
окончательно
{
если (г! = ноль)
г.Dispose();
если (thumimg! = ноль)
thumimg.Dispose();
если (upimage! = ноль)
upimage.Dispose();
если (изображение! = ноль)
изображение.Dispose();
}
}
public bool ThumbnailCallback()
{
вернуть ложь;
}