在 C# 中向图像添加标注 | 照片标注 | 图像标注

图像标注是一种图形元素,有助于吸引人们注意图像或照片的特定部分。标注是使任何视觉内容更清晰、更有影响力的秘密武器。可以将它们想象成照耀在图像最重要部分上的微小聚光灯。在本文中,我们将学习如何在 C# 中向图像添加标注。

本文涵盖以下主题:

  1. 什么是图片标注
  2. C# API 添加图像标注
  3. 如何在 C# 中向图像添加标注
  4. 免费资源

什么是图像标注?

图片标注是叠加在图片上的信息标签,用于引起人们对特定部分的注意并解释其重要性。图片标注可以采用引导线或箭头的形式,在视觉上将标注文本与图片的突出显示区域连接起来。它们可以是标注文本框,其中包含所指出元素的简短说明或标识。

图像标注通常用于:

  • 技术文档和教程:通过屏幕截图或图表指出特定的特性或功能。
  • 演示:强调图像中的关键元素。
  • 教育材料:标记插图或图表的各个部分。

使用 C# API 添加图像标注

为了在 C# 中以编程方式添加图像标注,我们将使用 Aspose.Drawing for .NET API。它是一个跨平台的 2D 图形库,用于以编程方式绘制文本、几何图形和图像。它提供了创建和添加图像标注的功能。

下载 API 的 DLL 或使用 NuGet 安装它。

PM> Install-Package Aspose.Drawing

如何在 C# 中向图像添加标注

我们可以按照以下步骤以编程方式轻松地向图像添加标注:

  1. 使用 Image.FromFile() 方法加载图像。
  2. 使用 FromImage() 方法创建一个新的 Graphics 对象。
  3. 使用指定的颜色和大小初始化 Pen 类对象来绘制标注。
  4. 使用指定的颜色和大小定义标注元素的位置。
  5. 之后,使用 DrawString() 方法写入文本。
  6. 最后,使用 Save() 方法保存输出图像。

以下代码示例展示了如何在 C# 中向图像添加标注。

using System.Drawing;
using System.Drawing.AsposeDrawing;
using System.Drawing.Imaging;
using System.Drawing.Text;

using (var image = Image.FromFile("gears.png"))
{
    var graphics = Graphics.FromImage(image);

    graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
    graphics.PageUnit = GraphicsUnit.Pixel;

    DrawCallOut(graphics, new PointF(107, 55), new PointF(179, 5), 74, "mm");

    DrawCallOut(graphics, new PointF(111, 146), new PointF(29, 180), 28, "mm");

    image.Save("gears_with_callout.jpg");
}


void DrawCallOut(Graphics graphic, PointF startAnchor, PointF endAnchor, int value, string unit)
{
    Pen pen = new Pen(Color.Red, 1);

    Font font = new Font("Arial", 10, FontStyle.Bold);

    string outputValue = $"{value} {unit}";

    var textSize = graphic.MeasureString(outputValue, font);

    int diameterSymbolSize = 12;
    int spaceSize = 3;

    textSize.Width += diameterSymbolSize + spaceSize;

    float callOutMiddleX = endAnchor.X > startAnchor.X ? endAnchor.X - textSize.Width : endAnchor.X + textSize.Width;
    float callOutMiddleY = endAnchor.Y > startAnchor.Y ? endAnchor.Y - textSize.Height : endAnchor.Y + textSize.Height;

    graphic.DrawLine(pen, startAnchor.X, startAnchor.Y, callOutMiddleX, callOutMiddleY);

    float textAnchorX = Math.Min(callOutMiddleX, endAnchor.X);
    float textAnchorY = callOutMiddleY;
    graphic.DrawLine(pen, callOutMiddleX, callOutMiddleY,
                        textAnchorX == callOutMiddleX ? textAnchorX + textSize.Width : textAnchorX,
                        callOutMiddleY);

    graphic.DrawEllipse(pen, new Rectangle((int)textAnchorX + spaceSize,
                                            (int)(textAnchorY - textSize.Height) + spaceSize, 10, 10));

    graphic.DrawLine(pen, (int)textAnchorX + 1, (int)textAnchorY - 1,
                            (int)textAnchorX + diameterSymbolSize + 2,
                            (int)textAnchorY - diameterSymbolSize - 2);

    SolidBrush brush = new SolidBrush(Color.Blue);

    graphic.DrawString(outputValue, font, brush, (int)textAnchorX + diameterSymbolSize + spaceSize,
                                                    (int)(textAnchorY - textSize.Height));
}
在 C# 中向图像添加标注

在 C# 中向图像添加标注

获取免费许可证

您可以获取免费临时许可证试用 Aspose.Drawing for .NET,不受评估限制。

照片标注 – 免费资源

除了为照片和图像添加标注外,您还可以使用以下资源探索图书馆的其他各种功能:

结论

在这篇文章中,我们学习了如何使用 C# 以编程方式向图像和照片添加标注。向图像添加标注是一种简单而有效的方法,可以增强内容的视觉吸引力和可用性。通过遵循概述的步骤并使用提供的代码示例,您可以轻松地引起人们对图像中关键元素的注意。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。

也可以看看