104人参与 • 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 举报,一经查实将立刻删除。
发表评论