kleisauke/net-vips

.NET binding for libvips.

它解决的问题

传统图像处理通常将整个图像加载到内存中,这既慢又占用大量内存。NetVips 提供了对 libvips 的 .NET 绑定,libvips 是一个以小段方式处理图像、通过管道流式传输图像的库。这使得调整大小和锐化等操作更快且内存占用更少。

工作原理

程序在源图像上定义一系列操作管道。不是立即执行每个操作,而是在连接到目标时一次性运行整个管道。libvips 并行流式传输图像,一次处理一个部分,因此不需要将整个图像加载到内存中。NetVips 使用原生 libvips 库,该绑定在 Windows、macOS 和 Linux 上通过 vips 测试套件且无内存泄漏。

适用人群

需要在应用程序中执行图像处理(如调整大小、锐化、转换)并希望获得高性能和低内存占用的 .NET 开发者。它支持 .NET Framework 4.6.2+ 和 .NET 6.0+。需要 libvips 共享库(版本 8.2+),但单独的 NuGet 包为许多平台提供预编译二进制文件。

亮点

  • 在基准测试中(加载大图像、缩小 10%、锐化、保存),比 Magick.NET 快约 26 倍,比 ImageSharp 快 4 倍。
  • 通过 NuGet 原生包支持多个平台,涵盖 Windows、Linux(glibc 和 musl)和 macOS,并提供 ARM64 和 x86 变体。
  • 支持的格式包括 JPEG、PNG、Ultra HDR、WebP、AVIF、TIFF、GIF 和 SVG(输入)。
  • 提供简单的 C# API,如示例所示,包括嵌入、波段相乘和卷积。

相关

  • 项目
  • 项目
  • 项目
  • 项目