You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用SixLabors ImageSharp在C#中给图片添加文字?求示例

在SixLabors ImageSharp中添加文字的Hello World示例

要在ImageSharp图片上添加文字,你需要用到SixLabors.ImageSharp.Drawing扩展包,以下是完整的实现代码:

// 需引用对应命名空间
using SixLabors.ImageSharp;
using SixLabors.ImageSharp.Drawing;
using SixLabors.ImageSharp.Drawing.Processing;
using SixLabors.ImageSharp.PixelFormats;
using SixLabors.ImageSharp.Processing;

public Image DragImage {
    get {
        // 创建指定尺寸的空白图片
        using SixLabors.ImageSharp.Image<Rgba32> ri = new((int)rect.Width, (int)rect.Height);
        
        // 加载系统字体(示例用Arial,可替换为其他系统字体或自定义字体文件)
        Font font = SystemFonts.CreateFont("Arial", 24);
        
        // 配置文本样式:设置对齐方式、字体等
        TextOptions textOptions = new TextOptions(font)
        {
            HorizontalAlignment = HorizontalAlignment.Center,
            VerticalAlignment = VerticalAlignment.Center
        };
        
        // 在图片上绘制指定文本,文本颜色设为黑色
        ri.Mutate(ctx => ctx.DrawText(textOptions, FieldName, Color.Black));
        
        // 返回图片副本,避免using块释放原对象导致异常
        return ri.Clone();
    } 
}

关键注意点:

  • 必须安装SixLabors.ImageSharp.Drawing NuGet包,否则无法使用文本绘制相关API
  • 字体加载支持两种方式:通过SystemFonts.CreateFont调用系统自带字体,或通过FontCollection加载本地字体文件
  • 使用Mutate方法执行图片编辑操作,DrawText是Drawing扩展提供的核心文本绘制方法
  • 用using管理图片对象生命周期,返回时需克隆原图片,防止原对象被提前释放

内容的提问来源于stack exchange,提问作者zapdbf

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 03:50:22