/// <summary>
/// 把现有图片顶部50px刷成白色,去水印
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnBrushWhite_Click(object sender, EventArgs e)
{
// Create a new instance of the BackgroundWorker class
BackgroundWorker worker = new BackgroundWorker();
// Set the DoWork event handler
worker.DoWork += new DoWorkEventHandler(btnBrushWhite_ClickCore);
// Start the background worker
worker.RunWorkerAsync();
this.btnBrushWhite.Enabled = false;
}
private async void btnBrushWhite_ClickCore(object sender, DoWorkEventArgs e)
{
var appSettings = ConfigurationManager.AppSettings; // Get the appSettings object
var imgDicPath = appSettings["ImgDicPath"];
var imgDicOutPath = appSettings["ImgDicOutPath"];
// Get an array of file paths in the directory
string[] filePaths = Directory.GetFiles(imgDicPath);
if (!Directory.Exists(imgDicOutPath))
{
Directory.CreateDirectory(imgDicOutPath);
}
this.pbHandleImg.Maximum = filePaths.Length;
var count = 0;
var startTime = DateTime.Parse("2022-08-02");
for (int i = 0; i < filePaths.Length; i++)
{
await Task.Delay(10);
this.pbHandleImg.Value = i + 1;
var filePath = filePaths[i];
// 获取图片文件大小
FileInfo fileInfo = new FileInfo(filePath);
long fileSizeInBytes = fileInfo.Length;
//获取上次修改时间
var lastModified = fileInfo.LastWriteTime;
if (lastModified < startTime || fileSizeInBytes == 0)
{
this.lblTips.Text = filePath + " 无需处理";
continue;
}
this.lblTips.Text = filePath;
try
{
using (Image imageCopy = Image.FromFile(filePath))
{
// Create a graphics object from the image
using (Graphics graphics = Graphics.FromImage(imageCopy))
{
// Create a white brush
using (SolidBrush whiteBrush = new SolidBrush(Color.White))
{
// Fill a rectangle at the top of the image with the white brush
graphics.FillRectangle(whiteBrush, 0, 0, imageCopy.Width, 50);
// Save the modified image to file
imageCopy.Save(filePath.Replace(imgDicPath, imgDicOutPath));
}
}
}
count++;
}
catch (System.Exception ex)
{
// Specify the file path and name
string path = AppDomain.CurrentDomain.BaseDirectory+"/log.txt";
// Open the file in append mode and create it if it doesn't exist
using (StreamWriter writer = new StreamWriter(path, true))
{
// Write the log message to the file
writer.WriteLine(DateTime.Now+","+filePath+","+ex.Message);
}
continue;
}
}
this.btnBrushWhite.Enabled = true;
MessageBox.Show(string.Format("执行完毕,共处理{0}张图片", count));
}