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);   // 保存图片,按照图片原始格式保存
                    }
                }
            }
        }总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持代码网。
 
             我要评论
我要评论 
                                             
                                             
                                             
                                             
                                            
发表评论