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

C#如何批量修改圖片尺寸和DPI

 更新時(shí)間:2025年05月30日 09:28:33   作者:綠葉白墻  
這篇文章主要介紹了C#批量修改圖片尺寸和DPI方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

C#批量修改圖片尺寸和DPI

讀取指定路徑下的圖片文件,修改圖片尺寸和pdi

我的文件夾下都是圖片

如果是混合的文件,自己寫個(gè)后綴名過濾函數(shù)就行,或者修改  GetFiles 過濾參數(shù) “*”.

string[] filedir = Directory.GetFiles(Root, "*.png", SearchOption.AllDirectories);
        private void button1_Click(object sender, EventArgs e)
        {
            string Root = this.textBox1.Text.Trim();
 
            // 讀取文件夾下的所有文件 (方法一)
            string[] filedir = Directory.GetFiles(Root, "*", SearchOption.AllDirectories);
            foreach (string fileName in filedir)
            {
                ChagePicDPI(fileName);
            }
 
             方法二
            //DirectoryInfo folder = new DirectoryInfo(Root);
            //foreach (FileInfo file in folder.GetFiles("*"))
            //{
            //    // 修改圖片dpi
            //    ChagePicDPI(file);
            //}
            MessageBox.Show("ok");
        }
 
        private void ChagePicDPI(string fileName)
        {
            int newWidth = 400;   // 固定圖像寬度
            int DPI = 1200;    // 圖像DPI             
 
            using (Bitmap oldBitmap = new Bitmap(fileName))
            {
                int newHeight = Convert.ToInt32(1.0 * oldBitmap.Height * newWidth / oldBitmap.Width);   //  圖像高度按照寬度等比變化
 
                using (Bitmap newBitmap = new Bitmap(newWidth, newHeight, PixelFormat.Format24bppRgb))
                {
                    using (Graphics g = Graphics.FromImage(newBitmap))
                    {
                        g.Clear(System.Drawing.Color.White);  // 背景白色
                        g.DrawImage(oldBitmap, new Rectangle(0, 0, newBitmap.Width, newBitmap.Height));
                        newBitmap.SetResolution(DPI, DPI);  // 設(shè)置DPI
 
                        string newFileName = fileName.Replace("D:\\圖形", "C:\\Users\\Administrator\\Desktop\\11111");  // 替換文件路徑
                        string dir = Path.GetDirectoryName(newFileName);
                        if (!Directory.Exists(dir))
                        {
                            Directory.CreateDirectory(dir);
                        }
 
                        newBitmap.Save(newFileName, oldBitmap.RawFormat);   // 保存圖片,按照?qǐng)D片原始格式保存
                    }
                }
            }
        }

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • C#正方形圖片的繪制方法

    C#正方形圖片的繪制方法

    這篇文章主要為大家詳細(xì)介紹了C#正方形圖片的繪制方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-10-10
  • C#更新文本框textbox數(shù)據(jù)同時(shí)刪除舊數(shù)據(jù)問題

    C#更新文本框textbox數(shù)據(jù)同時(shí)刪除舊數(shù)據(jù)問題

    這篇文章主要介紹了C#更新文本框textbox數(shù)據(jù)同時(shí)刪除舊數(shù)據(jù)問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • c#中@的3種作用

    c#中@的3種作用

    本文主要介紹了c#中@的3種作用。具有很好的參考價(jià)值,下面跟著小編一起來看下吧
    2017-02-02
  • windows系統(tǒng)下,如何在C#程序中自動(dòng)安裝字體

    windows系統(tǒng)下,如何在C#程序中自動(dòng)安裝字體

    在Windows系統(tǒng)中,原有自帶的字體樣式有限,有時(shí)候我們的程序會(huì)使用到個(gè)別稀有或系統(tǒng)不自帶的字體。因此我們需要將字體打包到程序中,當(dāng)程序啟動(dòng)時(shí),檢測(cè)系統(tǒng)是否有該字體,如果沒有則安裝該字體,也可以動(dòng)態(tài)加載字體。
    2020-11-11
  • 說說C#的async和await的具體用法

    說說C#的async和await的具體用法

    本篇文章主要介紹了說說C#的async和await的具體用法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • c# WPF中CheckBox樣式的使用總結(jié)

    c# WPF中CheckBox樣式的使用總結(jié)

    這篇文章主要介紹了c# WPF中CheckBox樣式的使用總結(jié),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下
    2021-03-03
  • Visual C#類的定義及實(shí)現(xiàn)方法實(shí)例解析

    Visual C#類的定義及實(shí)現(xiàn)方法實(shí)例解析

    這篇文章主要介紹了Visual C#類的定義及實(shí)現(xiàn)方法實(shí)例解析,對(duì)于新手來說有不錯(cuò)的借鑒學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2014-07-07
  • C#字符串自增自減算法詳解

    C#字符串自增自減算法詳解

    這篇文章主要為大家詳細(xì)介紹了C#字符串自增自減的算法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-08-08
  • C# BackgroundWorker組件學(xué)習(xí)入門介紹

    C# BackgroundWorker組件學(xué)習(xí)入門介紹

    一個(gè)程序中需要進(jìn)行大量的運(yùn)算,并且需要在運(yùn)算過程中支持用戶一定的交互,為了獲得更好的用戶體驗(yàn),使用BackgroundWorker來完成這一功能
    2013-10-10
  • C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例

    C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例

    當(dāng)根據(jù)對(duì)象的Name屬性進(jìn)行去重時(shí),你可以使用以下三種方法:使用Distinct方法和自定義比較器、使用LINQ的GroupBy方法,以及使用HashSet,下面給大家介紹C#集合根據(jù)對(duì)象的某個(gè)屬性進(jìn)行去重的代碼示例,感興趣的朋友一起看看吧
    2024-03-03

最新評(píng)論