天天看点

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  早上,一哥儿发来添加图片水印的资料。有三个信息,如下:

xx 09:57:35

http://index.cnblogs.com/archive/2004/10/20/54498.aspx 

王二狗 09:57:51

好的,我看看 

xx 09:58:12

http://www.iyuanma.com/info/18/17026_200592663244.htm 

xx 10:07:00

http://www.codefans.com/CodeView/CodeView_12043.html 

xx 10:07:18

你看看现成的组件能不能用 

         几分钟后,我就发现第二个网址的内容是copy第一个的(也许是相反),真是天下文章一大抄。于是我对那条说有什么组件的东东很感兴趣,下下来一看,吐血,就是一段代码,完全copy第一个文章里的,什么组件啊。真是能欺骗人。

         算了,自己动手,丰衣十足。想起上个月做相册的开发,用到了Gallery开源项目的东西。那里面有填加水印的,并且功能比较强大,能设定位置。不像上面的资料不能调整水印位置,水印效果估计也不好,毕竟就那几行。其实后来我发现那段代码还是错的,调试通过不了,修改后才能用,至于错在那里在后面介绍。

         我们先看看哥儿给我的资料里的代码:

           原来的代码:

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 1

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 private void Btn_Upload_Click(object sender, System.EventArgs e)

 2

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{

 3

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            if(UploadFile.PostedFile.FileName.Trim()!="")

 4

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 5

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                //上传文件

 6

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                string extension = Path.GetExtension(UploadFile.PostedFile.FileName).ToUpper();

 7

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();

 8

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                string path = Server.MapPath(".") + "/UploadFile/" + fileName + extension;

 9

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                UploadFile.PostedFile.SaveAs(path);

10

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

11

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                //加文字水印,注意,这里的代码和以下加图片水印的代码不能共存

12

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                System.Drawing.Image image = System.Drawing.Image.FromFile(path);

13

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Graphics g = Graphics.FromImage(image);

14

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.DrawImage(image, 0, 0, image.Width, image.Height);

15

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Font f = new Font("Verdana", 32);

16

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Brush b = new SolidBrush(Color.White);

17

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                string addText = AddText.Value.Trim();

18

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.DrawString(addText, f, b, 10, 10);

19

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.Dispose();

20

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

21

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                //加图片水印

22

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

23

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                System.Drawing.Image copyImage = System.Drawing.Image.FromFile( Server.MapPath(".") + "/Alex.gif");

24

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

25

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.DrawImage(copyImage, new Rectangle(image.Width-copyImage.Width, image.Height-copyImage.Height, copyImage.Width, copyImage.Height), 0, 0, copyImage.Width, copyImage.Height, GraphicsUnit.Pixel);

26

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

27

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

28

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                //保存加水印过后的图片,删除原始图片

29

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                string newPath = Server.MapPath(".") + "/UploadFile/" + fileName + "_new" + extension;

30

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                image.Save(newPath);

31

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                image.Dispose();

32

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if(File.Exists(path))

33

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

34

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    File.Delete(path);

35

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                }

36

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

37

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Response.Redirect(newPath);

38

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            }

39

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        }

         于是我把Gallery里的代码整理了下。如下:

          图片上传函数,进行判断是否加水印,做出两种处理方式:

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

    /**//// <summary>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// 上传图片代码

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// </summary>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="image_file">HtmlInputFile控件</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="ImgPath">存放的文件夹绝对位置</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="ImgLink">生成的图片的名称带后缀</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <returns></returns>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        public bool UpPic(System.Web.UI.HtmlControls.HtmlInputFile image_file,string ImgPath,string ImgLink )

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            if(image_file.PostedFile.FileName!=null && image_file.PostedFile.FileName.Trim()!="")

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                try

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    if( !System.IO.Directory.Exists(ImgPath))

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        System.IO.Directory.CreateDirectory( ImgPath);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    }

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                     //生成缩略图

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    //如果显示水印

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    if(ShowWatermark)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        image_file.PostedFile.SaveAs(ImgPath+ "\\" +"old_"+ImgLink);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        //加水印

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        this.addWaterMark((ImgPath+ "\\"+"old_"+ImgLink),(ImgPath+ "\\"+ImgLink));

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    else

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        image_file.PostedFile.SaveAs(ImgPath+ "\\" +ImgLink);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    return true;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                catch

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

40

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    return false;

41

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

42

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

43

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            else

44

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

45

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

46

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                return false;

47

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

48

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

49

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

   加水印的函数如下:

   填加图片函数,需要下面两个函数的支持,当然也可以写到一起,不过那看起来就很冗长了。

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

添加图片水印

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            /// 添加图片水印

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            /// </summary>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            /// <param name="oldpath">原图片绝对地址</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            /// <param name="newpath">新图片放置的绝对地址</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        private void addWaterMark(string oldpath,string newpath)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            try

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                System.Drawing.Image image = System.Drawing.Image.FromFile(oldpath);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Bitmap b = new Bitmap(image.Width, image.Height,PixelFormat.Format24bppRgb);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Graphics g = Graphics.FromImage(b);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.Clear(Color.White);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.SmoothingMode = SmoothingMode.HighQuality;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                g.InterpolationMode = InterpolationMode.High;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if(如果需要填加水印)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    switch(水印类型)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

    //是图片的话               

                                   case "WM_IMAGE":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                            this.addWatermarkImage( g,Page.Server.MapPath(Watermarkimgpath),WatermarkPosition,image.Width,image.Height);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                            break;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

    //如果是文字                    

                                   case "WM_TEXT":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                            this.addWatermarkText( g, WatermarkText,WatermarkPosition

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                                ,image.Width,image.Height);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    b.Save(newpath);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    b.Dispose();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    image.Dispose();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            catch

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if(File.Exists(oldpath))

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    File.Delete(oldpath);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            finally

50

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

51

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

52

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

53

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

54

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

55

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

56

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

57

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

58

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

59

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

60

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

61

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

62

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

63

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

64

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

65

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

加水印文字

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

/**//// <summary>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        ///  加水印文字

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="picture">imge 对象</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="_watermarkText">水印文字内容</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="_watermarkPosition">水印位置</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="_width">被加水印图片的宽</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="_height">被加水印图片的高</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        private void addWatermarkText( Graphics picture,string _watermarkText,string _watermarkPosition,int _width,int _height)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            int[] sizes = new int[]

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{16,14,12,10,8,6,4};

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            Font crFont = null;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            SizeF crSize = new    SizeF();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            for (int i=0 ;i<7; i++)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                crFont = new Font("arial", sizes[i], FontStyle.Bold);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                crSize = picture.MeasureString(_watermarkText, crFont);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if((ushort)crSize.Width < (ushort)_width)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    break;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            float xpos = 0;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            float ypos = 0;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            switch(_watermarkPosition)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                case "WM_TOP_LEFT":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    xpos = ((float)_width * (float).01) + (crSize.Width / 2);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    ypos = (float)_height * (float).01;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                case "WM_TOP_RIGHT":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    xpos = ((float)_width * (float).99) - (crSize.Width / 2);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                case "WM_BOTTOM_RIGHT":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    ypos = ((float)_height * (float).99) - crSize.Height;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                case "WM_BOTTOM_LEFT":

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            StringFormat StrFormat = new StringFormat();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            StrFormat.Alignment = StringAlignment.Center;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            SolidBrush semiTransBrush2 = new SolidBrush(Color.FromArgb(153, 0, 0,0));

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            picture.DrawString(_watermarkText, crFont, semiTransBrush2, xpos+1, ypos+1, StrFormat);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(153, 255, 255, 255));

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            picture.DrawString(_watermarkText, crFont, semiTransBrush, xpos, ypos, StrFormat);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            semiTransBrush2.Dispose();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            semiTransBrush.Dispose();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

//代码已经修改,可以按比率还填加图片水印,不过如果背景图片和水印图片太不成比率的话(指水印图片要大于背景图片的1/4),出来的效果不是很好。

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

水印图片

  1

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  /**//// <summary>

  2

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        ///  加水印图片

  3

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  4

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  5

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="WaterMarkPicPath">水印图片的地址</param>

  6

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  7

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  8

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

  9

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        private void addWatermarkImage( Graphics picture,string WaterMarkPicPath,string _watermarkPosition,int _width,int _height)

 10

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 11

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            Image watermark = new Bitmap(WaterMarkPicPath);

 12

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 13

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            ImageAttributes imageAttributes = new ImageAttributes();

 14

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            ColorMap colorMap = new ColorMap();

 15

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 16

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            colorMap.OldColor = Color.FromArgb(255, 0, 255, 0);

 17

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            colorMap.NewColor = Color.FromArgb(0, 0, 0, 0);

 18

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            ColorMap[] remapTable = 

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{colorMap};

 19

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 20

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap);

 21

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 22

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            float[][] colorMatrixElements = 

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 23

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                                                new float[] 

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{1.0f,  0.0f,  0.0f,  0.0f, 0.0f},

 24

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{0.0f,  1.0f,  0.0f,  0.0f, 0.0f},

 25

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{0.0f,  0.0f,  1.0f,  0.0f, 0.0f},

 26

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{0.0f,  0.0f,  0.0f,  0.3f, 0.0f},

 27

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

{0.0f,  0.0f,  0.0f,  0.0f, 1.0f}

 28

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                                            };

 29

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 30

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements);

 31

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 32

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);

 33

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 34

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            int xpos = 0;

 35

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            int ypos = 0;

 36

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            int WatermarkWidth=0;

 37

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            int WatermarkHeight=0;

 38

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            double bl=1d;

 39

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            //计算水印图片的比率

 40

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            //取背景的1/4宽度来比较

 41

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            if((_width>watermark.Width*4)&&(_height>watermark.Height*4))

 42

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 43

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                bl=1;

 44

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 45

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            else if((_width>watermark.Width*4)&&(_height<watermark.Height*4))

 46

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 47

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                bl=Convert.ToDouble(_height/4)/Convert.ToDouble(watermark.Height);

 48

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 49

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            }else

 50

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 51

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            if((_width<watermark.Width*4)&&(_height>watermark.Height*4))

 52

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 53

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                bl=Convert.ToDouble(_width/4)/Convert.ToDouble(watermark.Width);

 54

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 55

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 56

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 57

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if((_width*watermark.Height)>(_height*watermark.Width))

 58

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 59

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    bl=Convert.ToDouble(_height/4)/Convert.ToDouble(watermark.Height);

 60

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 61

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 62

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                else

 63

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 64

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    bl=Convert.ToDouble(_width/4)/Convert.ToDouble(watermark.Width);

 65

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 66

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 67

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 68

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 69

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 70

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            WatermarkWidth=Convert.ToInt32(watermark.Width*bl);

 71

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            WatermarkHeight=Convert.ToInt32(watermark.Height*bl);

 72

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 73

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 74

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 75

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 76

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 77

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 78

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    xpos = 10;

 79

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    ypos = 10;

 80

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 81

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 82

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    xpos = _width - WatermarkWidth - 10;

 83

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 84

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 85

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 86

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 87

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    ypos = _height -WatermarkHeight - 10;

 88

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 89

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 90

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 91

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    ypos = _height - WatermarkHeight - 10;

 92

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 93

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 94

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 95

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            picture.DrawImage(watermark, new Rectangle(xpos, ypos, WatermarkWidth, WatermarkHeight), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel, imageAttributes);

 96

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 97

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

 98

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            watermark.Dispose();

 99

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

            imageAttributes.Dispose();

100

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

   生成缩略图函数

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

生成缩略图

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /**//// <summary>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// 生成缩略图

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="oldpath">原图片地址</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="newpath">新图片地址</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="tWidth">缩略图的宽</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        /// <param name="tHeight">缩略图的高</param>

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

        private void  GreateMiniImage(string oldpath,string newpath,int tWidth, int tHeight)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                double bl=1d;

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                if((image.Width<=image.Height)&&(tWidth>=tHeight))

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    bl=Convert.ToDouble(image.Height)/Convert.ToDouble(tHeight);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                else if((image.Width>image.Height)&&(tWidth<tHeight))

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    bl=Convert.ToDouble(image.Width)/Convert.ToDouble(tWidth);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    if((image.Width<=image.Height)&&(tWidth<=tHeight))

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                    if(image.Height/tHeight>=image.Width/tWidth)

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        bl=Convert.ToDouble(image.Width)/Convert.ToDouble(tWidth);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                        bl=Convert.ToDouble(image.Height)/Convert.ToDouble(tHeight);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                Bitmap b = new Bitmap(image ,Convert.ToInt32(image.Width/bl), Convert.ToInt32(image.Height/bl));

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                b.Save(newpath);

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

                b.Dispose();

[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图
[转]c# 添加图片水印,可以指定水印位置+生成缩略图

66

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

67

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

68

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

69

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

70

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

     如果你能耐着心读到这里,你可以分辨一下,这两个加水印的函数和网上别人的代码有什么不同了。你也可以发现为什么网上的代码不能运行通过了。你只要动下小手,调试下就知道原因了。

     最后做得效果很好,附上帅图1,2,3

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

带图片水印的。

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

带文字水印

   你看看效果不错吧,这些水印都是设为放在右下角的。至于带图片的那张怎么位置不像在右下角,是因为背景图片太小,水印图片太大的原因。我只是随便做了下测试。新的效果图已经放上。

      如果你也是像我这样菜鸟的话,可能对你有点用处。大侠就不用看了。我写出来,其实是觉得网上连一些基础的代码都写的不好,还抄来抄去,更严重的是还是错误的。

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

     最新帅图:

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

     缩略图:

[转]c# 添加图片水印,可以指定水印位置+生成缩略图

由于原图太大上传不上来,只得把对比图发上来。

Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=826045