23人参与 • 2025-05-30 • Asp.net
读取指定路径下的图片文件,修改图片尺寸和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); // 保存图片,按照图片原始格式保存 } } } }
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论