本文实例讲述了asp.net实现生成缩略图及给原始图加水印的方法。分享给大家供大家参考,具体如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
using System.IO; using System.Drawing.Imaging; private void Button1_ServerClick( object sender, System.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(File1.PostedFile.FileName).ToUpper(); string filename = DateTime.Now.ToString( "yyyyMMddhhmmss" ); string smallpath = Server.MapPath( "." )+ "/smallimg/" ; string bigpath = 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); 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; 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 + 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 ; } |
希望本文所述对大家asp.net程序设计有所帮助。
原文链接:http://blog.csdn.net/happymagic/article/details/6880664