当前位置: 代码网 > it编程>编程语言>Asp.net > C#如何批量修改图片尺寸和DPI

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

2025年05月30日 Asp.net 我要评论
c#批量修改图片尺寸和dpi读取指定路径下的图片文件,修改图片尺寸和pdi我的文件夹下都是图片如果是混合的文件,自己写个后缀名过滤函数就行,或者修改 getfiles 过滤参数 “*&rd

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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com