VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > Python基础教程 >
  • C#教程之C#监控文件夹并自动给图片文件打水印的

本文实例讲述了C#监控文件夹并自动给图片文件打水印的方法。分享给大家供大家参考。具体分析如下:

个人私心的缘故,经常写一些博客之类的文章,由于看到网络上面好多同志转载后不标明出处,所以特地写了这么一个小程序,这个小程序的功能是当我在页面上通过QQ截图之后,把截到的图片保存到一个指定的路径,然后工具自动帮我把图片上面加上水印。

下面是全部代码:

?
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
67
68
69
70
71
72
73
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
namespace FolderWatcher
{
  public partial class Form1 : Form
  {
    public Form1()
    {
      InitializeComponent();
    }
    private static string text = "http://www.cnblogs.com/zhuzhenyu";
    private static string path = @"E:\FolderWatcher";
    private void button1_Click(object sender, EventArgs e)
    {
      if (!string.IsNullOrEmpty(this.textBox1.Text))
      {
        path = this.textBox1.Text;
      }
      if (!string.IsNullOrEmpty(this.textBox2.Text))
      {
        text = this.textBox2.Text;
      }
      WatcherStrat(path, "*.*");
    }
    private static void WatcherStrat(string path, string filter)
    {
      FileSystemWatcher watcher = new FileSystemWatcher();
      watcher.Path = path;
      watcher.Filter = filter;
      watcher.Created += new FileSystemEventHandler(OnProcess);
      watcher.EnableRaisingEvents = true;
      watcher.NotifyFilter = NotifyFilters.Attributes | NotifyFilters.CreationTime | NotifyFilters.DirectoryName | NotifyFilters.FileName | NotifyFilters.LastAccess
                  | NotifyFilters.LastWrite | NotifyFilters.Security | NotifyFilters.Size;
      watcher.IncludeSubdirectories = true;
    }
    private static void OnProcess(object source, FileSystemEventArgs e)
    {
      if (e.ChangeType == WatcherChangeTypes.Created)
      {
        OnCreated(source, e);
      }
    }
    private static void OnCreated(object source, FileSystemEventArgs e)
    {
      if (e.FullPath.IndexOf("_new.") < 0)
      {
        FinePic(e.FullPath, text, e.FullPath.Replace(".", "_new."), new Font("宋体", 15, FontStyle.Bold));
      }
    }
    /// <summary>
    /// 图片水印
    /// </summary>
    /// <param name="FileName">源文件路径</param>
    /// <param name="wText">水印文字</param>
    /// <param name="savePath">保存路径</param>
    /// <param name="font">字体样式</param>
    public static void FinePic(string FileName, string wText, string savePath, Font font)
    {
      Bitmap bmp = new Bitmap(FileName);
      System.Drawing.Graphics g = System.Drawing.Graphics.FromImage(bmp);
      g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
      g.DrawString(wText, font, new SolidBrush(Color.FromArgb(70, Color.Red)), 60, bmp.Height - 120);//加水印
      bmp.Save(savePath, System.Drawing.Imaging.ImageFormat.Jpeg);
    }
  }
}

来看一下效果

这里的代码非常简单,大家不要喷我

我是一只辛勤耕耘的蚂蚁

希望本文所述对大家的C#程序设计有所帮助。


相关教程