C# command line Image Resize(C# 命令模式下 圖片縮小程式)
C# command line Image Resize(C# 命令模式下 圖片縮小程式)
這是一個利用原生NET4.0的C#製作的縮圖小程式,可以利用BAT 撰寫要轉換檔案,達到輕鬆一次批量轉檔的功能
GITHUB: https://github.com/jash-git/CS_cmd_ImageResize
code:
using System; using System.Collections.Generic; using System.Drawing; using System.Linq; using System.Text; /* Create Image or Bitmap in console application - can't seem to find System.Drawing? https://stackoverflow.com/questions/13784559/create-image-or-bitmap-in-console-application-cant-seem-to-find-system-drawin You have to add Reference to the system.Drawing.Dll in your project. Right click on Project, add reference and find System.Drawing.DLL and add reference. EDIT: You will find it under Assemblies->Framework->System.Drawing */ namespace CS_cmd_ImageResize { class Program { static void pause() { Console.Write("Press any key to continue . . . "); Console.ReadKey(true); } static bool ImageResize(String strImageSrcPath, String strImageDesPath, int intWidth = 0, int intHeight = 0) { bool blnAns = true; Image objImage = Image.FromFile(strImageSrcPath); if (intWidth > objImage.Width) { intWidth = objImage.Width; } if (intHeight > objImage.Height) { intHeight = objImage.Height; } if ((intWidth == 0) && (intHeight == 0)) { intWidth = objImage.Width; intHeight = objImage.Height; } else if ((intHeight == 0) && (intWidth != 0)) { intHeight = (int)(objImage.Height * intWidth / objImage.Width); } else if ((intWidth == 0) && (intHeight != 0)) { intWidth = (int)(objImage.Width * intHeight / objImage.Height); } Bitmap imgOutput = new Bitmap(objImage, intWidth, intHeight); imgOutput.Save(strImageDesPath, objImage.RawFormat); objImage.Dispose(); objImage = null; imgOutput.Dispose(); imgOutput = null; return blnAns; } static void Main(string[] args) { /* //測試用 for (int i = 0; i < args.Length; i++) { Console.WriteLine(args[i]); } pause(); */ if(args.Length>2) { String StrSrcPath, StrDesPath; int intMax; try { StrSrcPath = args[0]; StrDesPath = args[1]; intMax = Convert.ToInt32(args[2]); ImageResize(StrSrcPath, StrDesPath, intMax, 0); } catch { Console.WriteLine("Parameter error"); pause(); } } else { Console.WriteLine("Parameter error"); pause(); } } } }