目录
C# OpenCvSharp 图片批量改名
效果
项目
代码
using NLog;
using OpenCvSharp;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Windows.Forms;
namespace OpenCvSharp_Demo
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
NLog.Windows.Forms.RichTextBoxTarget.ReInitializeAllTextboxes(this);
}
private static Logger _log = NLog.LogManager.GetCurrentClassLogger();
private void Form1_Load(object sender, EventArgs e)
{
}
string inPath = "";
string outPath = "";
DirectoryInfo folder;
List
String[] imageExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
///
/// 选择文件夹
///
///
///
private void button1_Click(object sender, EventArgs e)
{
inPath = "";
outPath = "";
files.Clear();
FolderBrowserDialog dialog = new FolderBrowserDialog();
dialog.Description = "请选择文件路径";
if (dialog.ShowDialog() == DialogResult.OK)
{
inPath = dialog.SelectedPath;
textBox1.Text = inPath;
outPath = inPath + "\\out";
textBox2.Text = outPath;
_log.Info("图片路径:" + inPath);
_log.Info("保存路径:" + outPath);
folder = new DirectoryInfo(inPath);
var temp = folder.GetFiles("*.*", SearchOption.TopDirectoryOnly);
foreach (FileInfo file in temp)
{
if (imageExtensions.Contains(file.Extension.ToLower()))
{
files.Add(file);
}
}
_log.Info("一共["+ files .Count()+ "]张图片");
}
}
///
/// 修改名称
///
///
///
private void button2_Click(object sender, EventArgs e)
{
if (files.Count()==0)
{
return;
}
outPath = textBox2.Text;
//目录不存在 则创建
if (!Directory.Exists(outPath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(outPath);
//创建目录
directoryInfo.Create();
}
else {
DirectoryInfo outFolder=new DirectoryInfo(outPath);
if (outFolder.GetFiles("*.*", SearchOption.AllDirectories).Length>0)
{
MessageBox.Show(outPath + "文件夹不为空,防止数据被覆盖,请更换!");
return;
}
}
string oldName;
string newName;
Mat temp;
int index = 0;
foreach (FileInfo file in files)
{
oldName = file.Name;
newName = index.ToString() + file.Extension;
try
{
temp = new Mat(inPath + "\\" + oldName);
//其他处理 ,例如
//图片缩放
//通道变换等
//……
Cv2.ImWrite(outPath + "\\" + newName, temp);
_log.Info(oldName + "-->" + newName);
index++;
}
catch (Exception ex)
{
_log.Info(oldName+"修改异常,异常信息:"+ex.Message);
}
}
_log.Info("全部修改完成!");
}
}
}
- using NLog;
- using OpenCvSharp;
- using System;
- using System.Collections.Generic;
- using System.IO;
- using System.Linq;
- using System.Windows.Forms;
-
- namespace OpenCvSharp_Demo
- {
- public partial class Form1 : Form
- {
- public Form1()
- {
- InitializeComponent();
- NLog.Windows.Forms.RichTextBoxTarget.ReInitializeAllTextboxes(this);
- }
-
- private static Logger _log = NLog.LogManager.GetCurrentClassLogger();
-
- private void Form1_Load(object sender, EventArgs e)
- {
-
- }
-
- string inPath = "";
- string outPath = "";
- DirectoryInfo folder;
- List<FileInfo> files=new List<FileInfo>();
- String[] imageExtensions = { ".jpg", ".jpeg", ".png", ".gif", ".bmp" };
-
- /// <summary>
- /// 选择文件夹
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button1_Click(object sender, EventArgs e)
- {
- inPath = "";
- outPath = "";
- files.Clear();
- FolderBrowserDialog dialog = new FolderBrowserDialog();
- dialog.Description = "请选择文件路径";
- if (dialog.ShowDialog() == DialogResult.OK)
- {
- inPath = dialog.SelectedPath;
- textBox1.Text = inPath;
- outPath = inPath + "\\out";
- textBox2.Text = outPath;
-
- _log.Info("图片路径:" + inPath);
- _log.Info("保存路径:" + outPath);
-
- folder = new DirectoryInfo(inPath);
- var temp = folder.GetFiles("*.*", SearchOption.TopDirectoryOnly);
- foreach (FileInfo file in temp)
- {
- if (imageExtensions.Contains(file.Extension.ToLower()))
- {
- files.Add(file);
- }
- }
- _log.Info("一共["+ files .Count()+ "]张图片");
- }
-
- }
-
- /// <summary>
- /// 修改名称
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- private void button2_Click(object sender, EventArgs e)
- {
- if (files.Count()==0)
- {
- return;
- }
- outPath = textBox2.Text;
- //目录不存在 则创建
- if (!Directory.Exists(outPath))
- {
- DirectoryInfo directoryInfo = new DirectoryInfo(outPath);
- //创建目录
- directoryInfo.Create();
- }
- else {
-
- DirectoryInfo outFolder=new DirectoryInfo(outPath);
- if (outFolder.GetFiles("*.*", SearchOption.AllDirectories).Length>0)
- {
- MessageBox.Show(outPath + "文件夹不为空,防止数据被覆盖,请更换!");
- return;
- }
- }
-
- string oldName;
- string newName;
- Mat temp;
- int index = 0;
- foreach (FileInfo file in files)
- {
- oldName = file.Name;
- newName = index.ToString() + file.Extension;
- try
- {
- temp = new Mat(inPath + "\\" + oldName);
- //其他处理 ,例如
- //图片缩放
- //通道变换等
- //……
- Cv2.ImWrite(outPath + "\\" + newName, temp);
- _log.Info(oldName + "-->" + newName);
- index++;
- }
- catch (Exception ex)
- {
- _log.Info(oldName+"修改异常,异常信息:"+ex.Message);
- }
- }
-
- _log.Info("全部修改完成!");
- }
- }
- }
下载


评论记录:
回复评论: