如何使用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.DrawingNuGet包,否则无法使用文本绘制相关API - 字体加载支持两种方式:通过
SystemFonts.CreateFont调用系统自带字体,或通过FontCollection加载本地字体文件 - 使用
Mutate方法执行图片编辑操作,DrawText是Drawing扩展提供的核心文本绘制方法 - 用
using管理图片对象生命周期,返回时需克隆原图片,防止原对象被提前释放
内容的提问来源于stack exchange,提问作者zapdbf
相关产品推荐
相关产品推荐

