转自:晓晨Master

本文中如无特别说明 .NET 指 .NET 5或者更高版本,代码同样可用于 .NET Core

前言

调整图片尺寸最常用的场景就是生成缩略图,一般为保持纵横比缩小,如果图片放大会使图片变得模糊,如果确实有这方面的需求,可以寻找开源的AI放大图片的方法。

1.ImageSharp

开源地址:https://github.com/SixLabors/ImageSharp

安装:

dotnet add package SixLabors.ImageSharp

使用:

using var image = Image.Load<Rgba32>("<图片路径>");
image.Mutate(x=>x.Resize(50,0));
image.Save("<保存图片路径>");

其中调用 Resize(width,height) 方法时,如果设置了宽或者高,然后另一个参数设置为 0 ,那么 ImageSharp 将会保持图片纵横比来进行调整大小。

还有更多的设置,比如设置图片质量等,请参阅官方文档:https://docs.sixlabors.com/articles/imagesharp/resize.html

使用此组件,可任意跨平台,无需安装外部依赖

2.ImageProcessor

此组件只能用于 .NET Framework

开源地址:https://github.com/JimBobSquarePants/ImageProcessor

安装:

Install-Package ImageProcessor

添加程序集:System.Drawing

使用:

using (var imageFactory = new ImageFactory(true))
{imageFactory.Load("<图片路径>").Resize(new Size(50,50)).Save("<保存图片路径>");
}

3.SkiaSharp

开源地址:https://github.com/mono/SkiaSharp

安装:

dotnet add package SkiaSharp

若在Linux出现依赖问题,可以使用包SkiaSharp.NativeAssets.Linux.NoDependencies

使用:

var image = SKBitmap.Decode("<图片路径>");
//设置图片新的size
var newImg = image.Resize(new SKSizeI(50, 50), SKFilterQuality.Medium);
using var fs=new FileStream("<保存图片路径>",FileMode.Create);
newImg.Encode(fs,SKEncodedImageFormat.Png, 100);
fs.Flush();

4.NetVips

此组件是基于 C 的库 libvips 来封装的,性能高,资源占用低。并且经过完全测试,跨平台且没有内存泄漏。

开源地址:https://github.com/kleisauke/net-vips

安装:

dotnet add package NetVips
dotnet add package NetVips.Native

两个包都需要安装

使用:

var image = NetVips.Image.NewFromFile("<图片路径>");
var newImg = image.Resize(<图片缩放比例>);
newImg.WriteToFile("<保存图片路径>");

这里的Resize()方法设置的是缩放比例,如: 0.5。该组件额外提供了一个生成缩略图的方法ThumbnailImage(),可以自定义宽高,如果只穿宽度,那么将保持纵横比。

var image = NetVips.Image.NewFromFile("<图片路径>");
var newImg = image.ThumbnailImage(<图片宽度>);
newImg.WriteToFile("<保存图片路径>");

.NET 调整图片尺寸(Resize)各种方法相关推荐

  1. 如何批量调整图片尺寸?

    如何批量调整图片尺寸?在日常的工作中,我们经常需要使用到图片素材,所以如果想要从容地面对各种不同的图片,学会一些图片处理的技巧就非常有必要了,尤其是图片批量处理技巧,当有大量图片需要处理的时候,批量处 ...

  2. iOS 调整图片尺寸和大小的两个方法

    在开发过程中,我们经常会遇到图片压缩功能,下面是我写的图片压缩的两个方法 首先是第一种,也是我比较推荐的 /// 调整图片尺寸和大小 /// @param sourceImage 原始图片 /// @ ...

  3. 使用Python调整图片尺寸(大小)

    凯哥英语视频 使用Python调整图片尺寸(大小) python有一个图像处理库--PIL,可以处理图像文件.PIL提供了功能丰富的方法,比如格式转换.旋转.裁剪.改变尺寸.像素处理.图片合并等等等等 ...

  4. 在你的iPad上调整图片尺寸

    本文翻译自Brian's Brain的Resize Images on Your iPad 在我的上一篇文章中,我描述了试图用图片平铺的方式来解决在ipad上展示"大型图片"的问题 ...

  5. python 修改图片尺寸_Python实现更改图片尺寸大小的方法(基于Pillow包)

    本文实例讲述了Python实现更改图片尺寸大小的方法.分享给大家供大家参考,具体如下: 1.PIL包推荐Pillow. 2.源码: #encoding=utf-8 #author: walker #d ...

  6. 怎么修改淘宝主图尺寸大小?图片尺寸修改的方法

    在制作淘宝主图的时候,偶尔会需要修改图片尺寸来符合上传要求,那么怎么去给图片改大小(https://www.yasuotu.com/size)呢?这里可以通过在线改图片大小的方法来实现,快捷又方便,而 ...

  7. 不用ps,怎么批量调整图片尺寸大小?

    工作中要修改图片尺寸大小,我们首先想要的就是用photoshop软件来处理,但是用photoshop来处理也会有很多的不变,其一是如果图片数量多的话用PS一张一张处理起来会消耗很多的时间,很麻烦:其二 ...

  8. ios 改变图片尺寸_iOS基础(十八)——调整图片尺寸和大小

    调整图片尺寸和大小 /** * 调整图片尺寸和大小 * * @param sourceImage 原始图片 * @param maxImageSize 新图片最大尺寸 * @param maxSize ...

  9. php中调整图片大小,php 调整图片尺寸的简单示例

    这篇文章主要为大家详细介绍了php 调整图片尺寸的简单示例,具有一定的参考价值,可以用来参考一下. 对php调整图片尺寸的代码感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! /** * ...

  10. 【matplotlib绘图】调整图片尺寸大小

    [matplotlib绘图]调整图片尺寸大小 核心代码如下: import matplotlib.pyplot as plt plt.rcParams['figure.figsize'] = (12. ...

最新文章

  1. 这个 MySQL bug 99% 的人会踩坑!
  2. 基于.NET Framework 4.0的解决方案部署
  3. CentOS HarBor安装与配置
  4. 【LuoguP5004】 专心OI - 跳房子
  5. python 读取、写入 pkl文件
  6. 如何实现BootStrapTable的动态表格
  7. Java SE 基础:线程
  8. Python根据身份证得知性别
  9. 小丁在加班之JVM优化-内存结构
  10. 高新计算机考试试题ps,最新版计算机高新考试ps第1单元1-8.pdf
  11. php判断汉子首字母的函数,php获取汉字首字母的函数
  12. / ./ ../的区别
  13. 架构之占位式插件化框架 --组件通信
  14. 二级路由dhcp关闭连不上wifi_路由器的使用小技巧!
  15. VS2015 0xc000007b应用程序无法正常启动 解决办法
  16. html中左括号怎么写,HTML基础 特殊符号 左右尖括号 与 货币 乘 除
  17. Python3调用百度翻译API进行英文翻译
  18. element ui table中想使得其中一列数据拥有横向滚动条的效果
  19. 对DB,DBMS的理解
  20. 北大822计算机综合考纲,天津工业大学822运营管理考研大纲2019年与2018年对比一览表...

热门文章

  1. 什么是高精准IP地址定位——IP问问
  2. vue中实现图片的懒加载
  3. 修改毕设,降低查重率方法
  4. linux终端执行二进制文件命令,Linux下查看二进制文件命令
  5. java 弹弹堂源码_弹弹堂s应用宝版下载
  6. pdf密码强制解除软件下载 | 专业PDF解密软件 | PDF Decrypter Pro
  7. WEB小项目-账务管理系统(2020年03月24日更新,附数据库和源码包)
  8. Ubuntu18.04 下的Gif录制工具
  9. 2012浙江大学光华法学院毕业典礼教师发言
  10. Zotero——论文管理神器