C#上传图片后压缩

上传的图片尺寸不一,手机拍照的有2000*2000像素的,对实际使用来说
文件尺寸太大,文件也有近4M

下面是直接压缩的方法

1、安装包
Magick.NET-Q16-AnyCPU

2、上代码

/// <summary>
/// 缩放图片
/// </summary>
/// <param name="fullPath">文件地址</param>
/// <param name="maxWidth">设置目标图片的最大宽度</param>
private void SuoFangImg(string fullPath, int maxWidth)
{
try
{
fullPath = Directory.GetCurrentDirectory() + "/wwwroot" + fullPath;
//fullPath为图片路径
using (MagickImage Magickimage = new MagickImage(fullPath))
{
	//int maxWidth = 600; // 设置目标图片的最大宽度为1300像素
	Magickimage.Quality = 50;// 100;//进行无损压缩
	// 计算新的尺寸,保持宽高比
	int width = (int)Magickimage.Width;
	int height = (int)Magickimage.Height;
	int newWidth = width;
	int newHeight = height;
	// 如果原始宽度大于最大宽度,则计算新的宽度和高度  
         if (width > maxWidth)
          {
              // 保持宽高比,计算新的宽度和高度  
              double aspectRatio = (double)height / (double)width;
              newWidth = maxWidth;
              newHeight = (int)(maxWidth * aspectRatio);
          }
          // 缩放图片  
          Magickimage.Resize((uint)newWidth, (uint)newHeight);
          Magickimage.Write(fullPath);
          Magickimage.Dispose();
      }
    }
    catch (Exception ex)
    {
        _log.Error("压缩缩放图片出现异常:" + ex.Message);
        _log.Info("图片地址:" + fullPath);
    }
}

完美解决

最近在看一款汉泰示波器,操作来说还是比较易上手的,还有讲解视频。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值