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

 更新时间:2025年05月30日 09:28:33   作者:绿叶白墙  
这篇文章主要介绍了C#批量修改图片尺寸和DPI方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

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

读取指定路径下的图片文件,修改图片尺寸和pdi

我的文件夹下都是图片

如果是混合的文件,自己写个后缀名过滤函数就行,或者修改  GetFiles 过滤参数 “*”.

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);  // 设置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);   // 保存图片,按照图片原始格式保存
                    }
                }
            }
        }

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • C#正方形图片的绘制方法

    C#正方形图片的绘制方法

    这篇文章主要为大家详细介绍了C#正方形图片的绘制方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • C#更新文本框textbox数据同时删除旧数据问题

    C#更新文本框textbox数据同时删除旧数据问题

    这篇文章主要介绍了C#更新文本框textbox数据同时删除旧数据问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • c#中@的3种作用

    c#中@的3种作用

    本文主要介绍了c#中@的3种作用。具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • windows系统下,如何在C#程序中自动安装字体

    windows系统下,如何在C#程序中自动安装字体

    在Windows系统中,原有自带的字体样式有限,有时候我们的程序会使用到个别稀有或系统不自带的字体。因此我们需要将字体打包到程序中,当程序启动时,检测系统是否有该字体,如果没有则安装该字体,也可以动态加载字体。
    2020-11-11
  • 说说C#的async和await的具体用法

    说说C#的async和await的具体用法

    本篇文章主要介绍了说说C#的async和await的具体用法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • c# WPF中CheckBox样式的使用总结

    c# WPF中CheckBox样式的使用总结

    这篇文章主要介绍了c# WPF中CheckBox样式的使用总结,帮助大家更好的理解和学习使用c#,感兴趣的朋友可以了解下
    2021-03-03
  • Visual C#类的定义及实现方法实例解析

    Visual C#类的定义及实现方法实例解析

    这篇文章主要介绍了Visual C#类的定义及实现方法实例解析,对于新手来说有不错的借鉴学习价值,需要的朋友可以参考下
    2014-07-07
  • C#字符串自增自减算法详解

    C#字符串自增自减算法详解

    这篇文章主要为大家详细介绍了C#字符串自增自减的算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-08-08
  • C# BackgroundWorker组件学习入门介绍

    C# BackgroundWorker组件学习入门介绍

    一个程序中需要进行大量的运算,并且需要在运算过程中支持用户一定的交互,为了获得更好的用户体验,使用BackgroundWorker来完成这一功能
    2013-10-10
  • C#集合根据对象的某个属性进行去重的代码示例

    C#集合根据对象的某个属性进行去重的代码示例

    当根据对象的Name属性进行去重时,你可以使用以下三种方法:使用Distinct方法和自定义比较器、使用LINQ的GroupBy方法,以及使用HashSet,下面给大家介绍C#集合根据对象的某个属性进行去重的代码示例,感兴趣的朋友一起看看吧
    2024-03-03

最新评论