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);}
}
完美解决
最近在看一款汉泰示波器,操作来说还是比较易上手的,还有讲解视频。