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

引用命令空间

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;

     }

}                        
复制代码

 

posted @   星辰与大海  阅读(389)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示