private void button1_Click(object sender, EventArgs e)
{
Graphics g = null;
System.Drawing.Image upimage = null;
System.Drawing.Image thumimg = null;
System.Drawing.Image simage = null;
Bitmap outputfile = null;
try
{
string extension = Path.GetExtension("D:\\1.jpg").ToUpper();//File1.PostedFile.FileName
string filename = DateTime.Now.ToString("yyyyMMddhhmmss");
string smallpath = "d:\\";//Server.MapPath(".") + "/smallimg/";
string bigpath = "d:\\";//Server.MapPath(".") + "/bigimg/";
int width, height, newwidth, newheight;
System.Drawing.Image.GetThumbnailImageAbort callb = new System.Drawing.Image.GetThumbnailImageAbort(ThumbnailCallback);
if (!Directory.Exists(smallpath))
Directory.CreateDirectory(smallpath);
if (!Directory.Exists(bigpath))
Directory.CreateDirectory(bigpath);
FileStream File1 = new FileStream("d:\\1.jpg", FileMode.Open, FileAccess.ReadWrite);
byte[] data = new byte[File1.Length];
File1.Read(data,0,data.Length);
File1.Close();
//Stream upimgfile =File1.PostedFile.InputStream;
MemoryStream upimgfile = new MemoryStream(data);
string simagefile = "d:\\click.PNG"; //Server.MapPath("a8logo.jpg");
//要加水印的文件
simage = System.Drawing.Image.FromFile(simagefile);
upimage = System.Drawing.Image.FromStream(upimgfile);
//上传的图片
width = upimage.Width;
height = upimage.Height;
if (width > height)
{
newwidth = 200;
newheight = (int)((double)height / (double)width * (double)newwidth);
}
else
{
newheight = 200;
newwidth = (int)((double)width / (double)height * (double)newheight);
}
thumimg = upimage.GetThumbnailImage(newwidth, newheight, callb, IntPtr.Zero);
outputfile = new Bitmap(upimage);
g = Graphics.FromImage(outputfile);
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 + filename + extension; //原始图路径
string thumpath = smallpath + filename+"snap" + extension; //缩略图路径
outputfile.Save(newpath);
thumimg.Save(thumpath);
outputfile.Dispose();
}
catch (Exception ex)
{
throw ex;
}
finally
{
if (g != null)
g.Dispose();
if (thumimg != null)
thumimg.Dispose();
if (upimage != null)
upimage.Dispose();
if (simage != null)
simage.Dispose();
}
}
public bool ThumbnailCallback()
{
return false;
}