首页 > 其他分享 >Magick.NET跨平台压缩图片的用法

Magick.NET跨平台压缩图片的用法

时间:2023-06-12 13:44:19浏览次数:36  
标签:scale imageData int image Magick 跨平台 NET

//首先NuGet安装:Magick.NET.Core,Magick.NET-Q16-AnyCPU
using ImageMagick; /// <summary> /// 压缩图片 /// </summary> /// <param name="imageData">图片字节流</param> /// <param name="maxWidth">最大宽度</param> /// <param name="maxHeight">最大高度</param> /// <returns></returns> public static byte[] CompressImage(byte[] imageData, int maxWidth, int maxHeight) { using var image = new MagickImage(imageData); double width = image.Width; double height = image.Height; double scale = Math.Min(maxWidth / width, maxHeight / height); if (scale >= 1) //图片尺寸不高于最大尺寸,直接返回原图 return imageData; int newWidth = (int)Math.Round(width * scale, MidpointRounding.AwayFromZero); int newHeight = (int)Math.Round(height * scale, MidpointRounding.AwayFromZero); image.Resize(newWidth, newHeight); var compressedImage = image.ToByteArray(MagickFormat.Jpg); return compressedImage; }

  

标签:scale,imageData,int,image,Magick,跨平台,NET
From: https://www.cnblogs.com/HelloCreator/p/17474812.html

相关文章

  • 云原生时代,.NET5必将称王!
    “ 随着互联网持续高歌猛进,相关技术名词也是层出不穷。微服务、容器化、DevOps、ServerLess、FaaS,这两年最火的,当属云原生CloudNative!当下大部分企业还在追逐微服务架构落地,而下一代的架构云原生已如火如荼。程序员是真不易,跟上步伐太难,然而这些恰恰是程序员高薪的底气,此刻我们......
  • delphi通过TNetHttpClient监测小红书笔记有无新增评论
    一、实现原理及步骤 每隔一定时间间隔(比如2分钟),抓取特定笔记ID的全部评论,统计出评论数量及子评论数量,与前一次抓取的数量比较,如数量增加,说明有新增评论。然后通过排序评论,找出最新添加的评论。二、技术要点1、评论接口https://edith.xiaohongshu.com/api/sns/web/v2/comment......
  • 重新统一的 .NET平台-.NET 5
    当Microsoft在2019年5月的MicrosoftBuild2019大会上宣布推出.NET5时,它标志着跨桌面、Web、移动、云和设备平台工作的开发人员向前迈出了重要一步。事实上,.Net5是一个罕见的平台更新,它统一了不同的框架、减少了代码复杂性,并显著提高了跨平台的可实现性。这不是一件容......
  • C#.NET Framework RSA 私钥签名 公钥验签(验证签名) ver:20230612
    C#.NETFrameworkRSA私钥签名公钥验签(验证签名)ver:20230612 环境说明:.NETFramework4.6的控制台程序 。 .NETFramework 对于RSA的支持:NETFramework内置只支持XML格式的私钥/公钥。如果要用PKCS1,PKCS8格式的,要用到三方库BouncyCastle。 核心重点是拿到.NET......
  • 龙芯下如何进行.net core程序开发部署
    龙芯LoongArch64已经发布了对.NETCore的支持,相关工具链也已完成,目前支持.NETCore3.1、.NET6、.NET7版本。本文以.NETCore3.1在loongnix-server8.4下部署为例说明开发部署过程。.NETCore3.1是基于上游社区.NETCore3.1-LTS-SDK制作的,同样是LTS版本。1、在龙芯开源社区下载安装.net......
  • 理解ASP.NET Core - 全球化&本地化&多语言(Globalization and Localization)
    注:本文隶属于《理解ASP.NETCore》系列文章,请查看置顶博客或点击此处查看全文目录概述在众多知名品牌的网站中,比如微软官网、YouTube等,我们经常可以见到“切换页面语言”的功能,我们可以选择最适合的语言浏览页面内容。毫无疑问,为网站提供多种语言,页面内容本地化,大大扩展了受众......
  • .NET的基元类型包括哪些?Unmanaged和Blittable类型又是什么?
    在讨论.NET的类型系统的时候,我们经常提到“基元类型(PrimitiveType)”的概念,我发现很多人并没有真正理解基元类型就究竟包含哪些(比如很多人觉得字符串是基元类型)。除了明确界定基元类型外,本篇文章还会简单介绍额外两种关于类型的概念——Unmanaged类型和Blittable类型。一、Primiti......
  • [MAUI]写一个跨平台富文本编辑器
    @目录原理创建编辑器定义实现复合样式选择范围字号字体颜色与背景色字体下划线字体加粗与斜体序列化和反序列化跨平台实现集成至编辑器创建控件使用控件最终效果已知问题项目地址富文本编辑器是一种所见即所得(whatyouseeiswhatyouget简称WYSIWYG)文本样式编辑器,用户在编......
  • Kubernetes Service的研究
    一、Service资源基础1.1介绍在Kubernetes中,Pod资源是应用程序的载体,我们可以通过Pod的ip来访问应用程序,但是Pod的ip地址不是固定的,这就意味着不方便直接采用Pod的ip对服务进行访问。   为了解决这个问题,Kubernetes提供了Service资源,Service会对提供同一个服务的多个Pod进行......
  • 使用.net4引用Delph写的动态链接库DLL,you经验的大佬看一下
    vs2017、net4、无法引用?是Delph动态链接库的问题吗?也把dll放bin同目录底下啦这个是用vs打开的dll是机器代码请有经验的大佬指点一手......