开发者

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

开发者 https://www.devze.com 2025-05-31 10:32 出处:网络 作者: 绿叶白墙
目录C#批量修改图片尺寸和DPI我的文件夹下都是图片总结C#批量修改图片尺寸和DPI
目录
  • 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();
     
                // 读取文件夹aYqWF下的所有文件 (方法一)
                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 newHhttp://www.devze.comeight = Convert.ToInt32(1.0 * oldBitmap.Height * newWidth / oldBitmap.Width);   //  图像高度按照宽度等比变化
     
                    using (Bitmap newBitmap =http://www.devze.com 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);
                            }
     
                            newBitmawww.devze.comp.Save(newFileName, oldBitmap.RawFormat);   // 保存图片,按照图片原始格式保存
                        }
                    }
                }
            }

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    关注公众号