C#利用Magick图片压缩

一.环境准备:

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

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值