C#監控文件夾并自動給圖片文件打水印

cymt 9年前發布 | 1K 次閱讀 C#

C#監控文件夾并自動給圖片文件打水印

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);
    }
}

}</pre>

 本文由用戶 cymt 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!