您的位置:首页 > 编程语言 > C#

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

2015-05-19 14:41 2051 查看

本文实例讲述了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#程序设计有所帮助。

您可能感兴趣的文章:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C# 文件夹 图片 水印