1. 产品
  2.   图片
  3.   .NET
  4.   ImageSharp  

ImageSharp  

 
 

用于 2D 图形的开源 C# .NET 库

使用 .NET API 读取、写入、修改、调整大小和转换 PNG、JPEG、GIF 和 TIFF 图像。

ImageSharp 是一个简单但非常强大的跨平台开源库,用于在 C# 应用程序中处理图像文件。它是一个完全托管的跨平台 2D 图形 API,旨在允许处理图像。 ImageSharp 是一个开源图像处理库,发布的目的是提供 System.Drawing API 的替代方案。

该 API 功能全面,支持图像处理的高级算法。 API 逐年改进,为更高级的图像处理提供支持。它唯一的依赖是 .NET 本身,这使得它具有极强的可移植性。该 API 包括对高级功能的支持,例如图像大小调整、图像编码和解码、仅解码图像元数据、图像克隆、在图像上绘制水印、沿路径绘制文本等等。

Previous Next

ImageSharp 入门

NuGet 上提供了稳定版本。对于 beta 版本,请确保已启用包含预发布开关。开发版本可通过 MyGet 获得。

通过 NuGet 安装 ImageSharp

Install-Package SixLabors.ImageSharp -Version number 

用于调整图像大小的 C# API

ImageSharp 库允许 C# .NET 程序员在他们自己的 .NET 应用程序中调整图像大小。调整图像大小需要生成和迭代目标图像的像素和源图像的采样区域以选择要为每个像素实现的颜色的过程。您可以在处理图像时轻松设置算法,例如 Bicubic、Hermite、Box、CatmullRom、Lanczos2 等。除了基本的调整大小操作,ImageSharp 还提供了更多高级功能。

通过C#API重置图像

// Load File 
using (Image image = Image.Load("fileformat.jpg"))
{
  // Resize file 
  image.Mutate(x => x
      .Resize(image.Width / 2, image.Height / 2)
      .greyscale());
  // Save
  image.Save("fileformat_out.jpg");
}                
                  

在图像上绘制水印

通常,人们通过叠加大水印来保护他们的图像,以防止人们未经授权使用图像。 ImageSharp 库支持向 C++ 应用程序中的图像添加水印。首先,您需要一个字体系列,您可以轻松地从系统字体商店中获得一个。在图像上绘制文本并将其变灰,不透明度为 50%。

沿途绘制文本及其对图像的应用

ImageSharp个图书馆允许C#。ET开发者在路径轮廓之后绘制一些文本。 建议创建一个字体集合。 首先、让我们生成文本作为沿着路径绘制的一组矢量。 在绘制路径之后、我们可以看到文本应该遵循什么。 ImageSharpAPI还允许将各种形式的影响应用于形状中。

适用于图像


namespace CustomImageProcessor
{
    static class Program
    {
        static void Main(string[] args)
        {
            System.IO.Directory.CreateDirectory("output");
            using (Image image = Image.Load("fb.jpg"))
            {
                var outerRadii = Math.Min(image.Width, image.Height) / 2;
                var star = new Star(new PointF(image.Width / 2, image.Height / 2), 5, outerRadii / 2, outerRadii);
                using (var clone = image.Clone(p =>
                {
                    p.GaussianBlur(15); // apply the effect here you and inside the shape
                }))
                {
                    clone.Mutate(x => x.Crop((Rectangle)star.Bounds));
                    var brush = new ImageBrush(clone);
                    // cloned image with the effects applied
                    image.Mutate(c => c.Fill(brush, star));
                }
                image.Save("output/fb.png");
            }
        }
    }
}              
 中国人