一.环境准备:
1.VS2019 C# 控制台应用程序
2.安装的包:
或者使用控制台安装:
Install-Package Costura.Fody -Version 1.5.0
Install-Package Magick
二.具体代码:
//导入必要的库
using ImageMagick;
using System;
//可以将图片压缩 但是单文件太大:19.M
namespace ConsoleApp10_img_compression
{
class ImagesCompress
{
public void compress_fun(string[] args)
{
//用于命名的时间
String mytimes = DateTime.Now.ToString("yyyy年MM月dd日HH_mm_ss_");
//设置图片的质量
int q = int.Parse(args[0]);
//获取输入图片的路径-用于默认存放
string temp = System.IO.Path.GetDirectoryName(args[1]) + "\\";
int start = 1;//默认的起始位置
int statue_p = 1;//默认路径没有被修改
int statue_n = 1;//默认名字不被修改
//修改存放路径 -p Path
if(args[1]=="-p")
{
temp = args[2]; //那么紧接着的参数视为新路
start = 3;
statue_p = 0;
}
if (args.Length > 4 && args[3] == "-p")
{
temp = args[4]; //那么紧接着的参数视为新路
start = 5;
statue_n = 0;
}
//修改命名 -n name
if (args[1]=="-n")
{
mytimes = args[2];//后面的参数作为重命名的名称
if(statue_n==1)
{
start = 3;
temp = System.IO.Path.GetDirectoryName(args[start]) + "\\";
}
}
if (args.Length > 4 && args[3] == "-n")
{
mytimes = args[4];//后面的参数作为重命名的名称
start = 5;
if(statue_p==1)
temp = System.IO.Path.GetDirectoryName(args[start]) + "\\";
}
for (int i = start; i < args.Length; i++)
{
MagickImage image = new MagickImage(args[i]);
string temp_name = System.IO.Path.GetFileName(args[i]);
string temp_name_no = System.IO.Path.GetFileNameWithoutExtension(args[i]);
string temp_ext = System.IO.Path.GetExtension(args[i]);
//image.Format=2; // Get or Set the format of the image.
//image.Resize(40, 40); // fit the image into the requested width and height.
image.Quality = q; // 设置的图片质量1-100
string file_name = "";
if (temp_ext == ".jpg")
{
file_name = temp + mytimes + temp_name;//.jpg的图片
}
else
{
file_name = temp + i + mytimes + temp_name_no + ".jpg";//其他图片
}
image.Write(file_name);//保存文件
Console.WriteLine("Compress {0}", args[i]);
}
}
}
class Program
{
static void Main(string[] args)
{
//根据参数来决定输出情况
if (args.Length < 2)
{
Console.WriteLine("请输入参数:test1.jpg test2.png ……");
}
else
{
Console.WriteLine("==================Image Compression Start================");
//新建对象,调用压缩函数
ImagesCompress object_imgcompress = new ImagesCompress();
object_imgcompress.compress_fun(args);
Console.WriteLine("==================Image Compression End=================");
}
Console.ReadKey();
}
}
}
三.效果与应用:
https://getquicker.net/Sharedaction?code=c0a5d6df-bcbf-4f06-3a4c-08d964c00b51&fromMyShare=true