class Program { static double size = 2.443438914027149; static void Main(string[] args) { if (!System.IO.Directory.Exists("Img")){ System.IO.Directory.CreateDirectory("Img"); Console.WriteLine("已创建Img目录,请把需要处理的图片放到该目录下"); Console.ReadKey(true); return; } if (!System.IO.Directory.Exists("NewImg")){ System.IO.Directory.CreateDirectory("NewImg"); } GetPath("Img"); Console.ReadKey(true); } //读取文件夹中所有文件
static public void GetPath(string dir) { foreach (string d in Directory.GetFileSystemEntries(dir)) { if (File.Exists(d)) { FileInfo fi = new FileInfo(d); if (fi.Attributes.ToString().IndexOf("ReadOnly") != -1) { fi.Attributes = FileAttributes.Normal; } ChangeImageSize(dir); break; }else { DirectoryInfo d1 = new DirectoryInfo(d); GetPath(dir +"/" +d1.Name); } } } static public void ChangeImageSize(string dir) { string[] fileStrs = System.IO.Directory.GetFiles(dir); foreach (string s in fileStrs) { System.IO.FileInfo info = new System.IO.FileInfo(s); if (info.Extension == ".png" || info.Extension == ".jpg") { Image img = GetFile(s); Bitmap bit = GetNewSizeBitmap(img, size); SaveImage(bit, info.Name, info.Extension,dir); } } } static public Image GetFile(string path) { FileStream stream = File.OpenRead(path); int fileLength = 0; fileLength = (int)stream.Length; Byte[] image = new Byte[fileLength]; stream.Read(image, 0, fileLength); System.Drawing.Image result = System.Drawing.Image.FromStream(stream); stream.Close(); return result; } static public Bitmap GetNewSizeBitmap(Image img , double size){ int newWidth = Convert.ToInt32(img.Width / size); int newHeight = Convert.ToInt32(img.Height / size); Size s = new Size(newWidth, newHeight); Bitmap newBit = new Bitmap(img, s); return newBit; } static public void SaveImage(Bitmap bit, string name, string ext, string dir) { if (!System.IO.Directory.Exists("NewImg\\" + dir)) { System.IO.Directory.CreateDirectory("NewImg\\" + dir); } bit.Save(@"NewImg\\" + dir + "\\" + name); bit.Dispose(); Console.WriteLine("已处理:" + name); } }