首页 > 编程 > C# > 正文

C#监控文件夹并自动给图片文件打水印的方法

2020-01-24 01:50:06
字体:
来源:转载
供稿:网友

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

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

下面是全部代码:

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#程序设计有所帮助。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表