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#利用ASP.NET Core开发学生管理系统详解

    C#利用ASP.NET Core开发学生管理系统详解

    随着技术的进步,跨平台开发已经成为了标配,在此大背景下,ASP.NET Core也应运而生。本文主要利用ASP.NET Core开发一个学生管理系统,感兴趣的可以学习一下
    2022-01-01
  • C#实现字符串与图片的Base64编码转换操作示例

    C#实现字符串与图片的Base64编码转换操作示例

    这篇文章主要介绍了C#实现字符串与图片的Base64编码转换操作,结合实例形式分析了C#针对base64编码与图片的相互转换操作技巧,需要的朋友可以参考下
    2017-06-06
  • DevExpress实现TreeList节点互斥的方法

    DevExpress实现TreeList节点互斥的方法

    这篇文章主要介绍了DevExpress实现TreeList节点互斥的方法,对于初学者更好的理解C#有一定的帮助,需要的朋友可以参考下
    2014-08-08
  • C#根据权重抽取随机数

    C#根据权重抽取随机数

    最近在开发过程中遇到一个需要做带权随机的处理,本文主要介绍了C#根据权重抽取随机数,具有一定的参考价值,感兴趣的可以了解一下
    2024-02-02
  • c#唯一值渲染实例代码

    c#唯一值渲染实例代码

    这篇文章主要介绍了c#唯一值渲染实例代码,有需要的朋友可以参考一下
    2013-12-12
  • C#中Invoke和BeginInvoke区别小结

    C#中Invoke和BeginInvoke区别小结

    有时候,我们不得不跨线程调用主界面的控件来进行操作,所以为了方便的解决问题,.net为我们提供了Invoke 与beginInvoke,那么Invoke和BeginInvoke区别在哪,本文就来详细的介绍一下
    2023-08-08
  • C#实现通过ffmpeg从flv视频文件中截图的方法

    C#实现通过ffmpeg从flv视频文件中截图的方法

    这篇文章主要介绍了C#实现通过ffmpeg从flv视频文件中截图的方法,实例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以参考下
    2015-03-03
  • C# 枚举Color并展示各种颜色效果的示例

    C# 枚举Color并展示各种颜色效果的示例

    本文主要介绍了C# 枚举Color并展示各种颜色效果,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2021-07-07
  • C#使用AnimateWindow()实现动画窗体的方法

    C#使用AnimateWindow()实现动画窗体的方法

    用API函数AnimateWindow函数来实现窗体的动画效果,在C#中,你可以使用P/Invoke技术调用Windows API中的AnimateWindow函数来实现动画窗体,本文就给大家介绍了C#使用AnimateWindow()实现动画窗体的方法,感兴趣的朋友可以参考下
    2024-04-04
  • c#多种加解密示例(md5加密解密)

    c#多种加解密示例(md5加密解密)

    这篇文章主要介绍了c#多种加解密示例,包括了MD5加密,SHA1加密,DES加解密,需要的朋友可以参考下
    2014-03-03

最新评论