目录
- 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)。
精彩评论