首页 > 编程语言 >使用SixLabors.ImageSharp 进行图片的缩放C#.net core,可跨平台运行

使用SixLabors.ImageSharp 进行图片的缩放C#.net core,可跨平台运行

时间:2024-08-08 17:51:26浏览次数:8  
标签:core 缩放 image 跨平台 using var new SixLabors ImageSharp

引用命令空间

using SixLabors.ImageSharp;

using SixLabors.ImageSharp.Formats.Png;

using SixLabors.ImageSharp.Processing;

 

public static vid Resize(byte[] imageBytes,int width=400)
{
    using var steam = new MemoryStream(imageBytes);
    using (var image= Image.Load(stream))
   {
          var ow = image.Width;  
          var oh = image.Height;
          
         // 如何制定宽度大于原图, 使用原图宽度
         float scale = (ow <= width) ? 1 : (width/ow*1.0f);

         // 新的宽度和高度
         int targetWidth = (int) (ow * scale);
         int targetHeight = (int)( oh * scale);

         // 对图像进行调整大小
         image.Mutate(x => x.Resize(
             new ResizeOptions
             {
                  Size = new Size(targetWidth,targetHeight),Mode = ResizeMode.Max
             } 
          ));
           
           // configure the encoder options 
          var encoder = new SixLabors.ImageSharp.Formats.Png.PngEncoder
          {
               CompressionLevel = CompressionLevel.BestCompression
          };

         // compress the thumb and save it as stream

         var saveStream= new System.Io.MemoryStream();
         image.save(saveStream,encoder);
         // image.Save(thumbPath,encoder); 
         return saveStream;

     }

}                        

 

标签:core,缩放,image,跨平台,using,var,new,SixLabors,ImageSharp
From: https://www.cnblogs.com/davies/p/18349423

相关文章

  • 【轻松拿捏】Java是如何实现跨平台性的?
    Java是如何实现跨平台性的?一、Java的跨平台性主要通过以下几个核心机制实现:二、具体实现三、示例 四、JVM工作示意图五、总结......
  • PageOffice6国产Linux系统最简集成代码(.NetCore)
    本文描述了PageOffice产品在.NetCore项目中如何集成调用。PageOffice国产版:支持信创系统,支持银河麒麟V10和统信UOS,支持X86(intel、兆芯、海光等)、ARM(飞腾、鲲鹏、麒麟等)、longarch芯片架构。新建.NetCore项目:PageOffice6-Net-Core-Simple在此项目的“依赖项-包-管理NuGet程序......
  • [rCore学习笔记 023]任务切换
    导读还是要先看官方手册.学过DMA的同志可能比较好理解,一句话,释放CPU总线:如果把应用程序执行的整个过程进行进一步分析,可以看到,当程序访问I/O外设或睡眠时,其实是不需要占用处理器的,于是我们可以把应用程序在不同时间段的执行过程分为两类,占用处理器执行有效任务的计算阶......
  • ASP.NET CORE微信支付回调示例代码
    ASP.NETCORE微信支付回调示例代码 ///<summary>///接收微信支付异步通知///</summary>///<returns></returns>publicasyncTask<ActionResult>NotifyUrl(){//读取请求体中的数据/*......
  • Java跨平台原理
    Java跨平台的原理主要基于以下几个关键点:Java虚拟机(JVM)Java虚拟机是Java跨平台的核心技术。它是一个软件程序,可以在不同的操作系统上运行Java程序,并把Java程序翻译成可执行代码。JVM是一个虚构出来的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现。不同平台上的JVM......
  • asp .net core 启动过程
    1.要了解启动过程,先介绍 IHostingStartup和IStartup接口///<summary>///Representsplatformspecificconfigurationthatwillbeappliedtoa<seecref="IWebHostBuilder"/>whenbuildingan<seecref="IWebHost"/>.///</summary......
  • ASP.NET Core 鉴权授权四(自定义Session)
    实体模型publicclassBaseModel{publicintId{get;set;}}publicclassAuthorization:BaseModel{publicstringRoute{get;set;}publicstringAuthorizationName{get;set;}}publicclassUser:BaseModel{publicstringUserName{......
  • Docker部署.netCore6
    Docker部署.netCore6第一步:在项目添加Docker支持第二步:选择Windows(如果是linx系统就选择linx)和Dockerfile第三步:生成Docker默认文件 把默认代码修改第四步:修改Dockerfile文件属性(如果不修改则会导致发布的时候Docker文件没有一起发布)第五步:把项目发布到文件夹在发......
  • EF Core连接PostgreSQL数据库
    PostgreSQL数据库介绍PostgreSQL是一个功能强大的开源对象关系型数据库管理系统(RDBMS)。最初于1986年在加州大学伯克利分校的POSTGRES项目中诞生,PostgreSQL以其稳定性、灵活性和扩展性而著称。它支持丰富的数据类型、复杂的查询、事务完整性、多版本并发控制(MVCC)、存储过程等高级......
  • k8s学习笔记之CoreDNS
    一、CoreDNSconfigMap配置参数及说明主要讲解CoreDNSconfigMap及其他关键配置部署文件(需要替换其中一些变量):https://github.com/kubernetes/kubernetes/blob/master/cluster/addons/dns/coredns/coredns.yaml.base1.configMap配置apiVersion:v1kind:ConfigMapmetadat......