欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

C# OpenCvSharp實現(xiàn)圖片批量改名

 更新時間:2024年03月11日 17:05:16   作者:天天代碼碼天天  
這篇文章主要為大家詳細介紹了C#如何結(jié)合OpenCvSharp實現(xiàn)圖片批量改名功能,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下

效果

項目

代碼

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;
            //目錄不存在 則創(chuàng)建
            if (!Directory.Exists(outPath))
            {
                DirectoryInfo directoryInfo = new DirectoryInfo(outPath);
                //創(chuàng)建目錄
                directoryInfo.Create();
            }
            else {
 
                DirectoryInfo outFolder=new DirectoryInfo(outPath);
                if (outFolder.GetFiles("*.*", SearchOption.AllDirectories).Length>0)
                {
                    MessageBox.Show(outPath + "文件夾不為空,防止數(shù)據(jù)被覆蓋,請更換!");
                    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("全部修改完成!");
        }
    }
}

到此這篇關(guān)于C# OpenCvSharp實現(xiàn)圖片批量改名的文章就介紹到這了,更多相關(guān)C# OpenCvSharp圖片改名內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • C#識別出圖片里的數(shù)字和字母

    C#識別出圖片里的數(shù)字和字母

    本文給大家分享的是C#識別出圖片里的數(shù)字和字母的代碼,主要是識別以前公司的軟件注冊碼截圖里的數(shù)字和字母,功能很簡單,也存在很大的局限性,這里僅僅是分享,小伙伴們參考下。
    2015-03-03
  • C#發(fā)送和接收HTTP請求類HttpWebRequest的用法

    C#發(fā)送和接收HTTP請求類HttpWebRequest的用法

    這篇文章主要給大家介紹了關(guān)于C#發(fā)送和接收HTTP請求類HttpWebRequest用法的相關(guān)資料,C#中的HttpWebRequest是一個用于發(fā)送HTTP請求的類,它可以用于向Web服務器發(fā)送GET、POST、PUT、DELETE等請求,需要的朋友可以參考下
    2024-06-06
  • C#訪問及調(diào)用類中私有成員與方法示例代碼

    C#訪問及調(diào)用類中私有成員與方法示例代碼

    訪問一個類的私有成員不是什么好做法,大家也都知道私有成員在外部是不能被訪問的,這篇文章主要給大家介紹了關(guān)于C#訪問及調(diào)用類中私有成員與方法的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下
    2018-06-06
  • Unity的IPostBuildPlayerScriptDLLs實用案例深入解析

    Unity的IPostBuildPlayerScriptDLLs實用案例深入解析

    這篇文章主要為大家介紹了Unity的IPostBuildPlayerScriptDLLs實用案例深入解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • C#實現(xiàn)獲取運行平臺系統(tǒng)信息的方法

    C#實現(xiàn)獲取運行平臺系統(tǒng)信息的方法

    這篇文章主要介紹了C#實現(xiàn)獲取運行平臺系統(tǒng)信息的方法,比較典型的C#應用,需要的朋友可以參考下
    2014-07-07
  • JWT.net 操作實踐方法

    JWT.net 操作實踐方法

    下面小編就為大家分享一篇JWT.net 操作實踐方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#線程隊列用法實例分析

    C#線程隊列用法實例分析

    這篇文章主要介紹了C#線程隊列用法,以實例形式分析了C#線程隊列的創(chuàng)建、運行、等待、結(jié)束等操作技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-09-09
  • WPF實現(xiàn)動畫效果(五)之關(guān)鍵幀動畫

    WPF實現(xiàn)動畫效果(五)之關(guān)鍵幀動畫

    這篇文章介紹了WPF實現(xiàn)動畫效果之關(guān)鍵幀動畫,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • C#中的局部變量沖突問題

    C#中的局部變量沖突問題

    今天小編就為大家分享一篇C#中的局部變量沖突問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • C#實現(xiàn)判斷圖形文件格式的方法

    C#實現(xiàn)判斷圖形文件格式的方法

    這篇文章主要介紹了C#實現(xiàn)判斷圖形文件格式的方法,包括常見的擴展名判定及文件內(nèi)容判定等,非常實用,需要的朋友可以參考下
    2014-09-09

最新評論