图像标注是一种图形元素,有助于吸引人们注意图像或照片的特定部分。标注是使任何视觉内容更清晰、更有影响力的秘密武器。可以将它们想象成照耀在图像最重要部分上的微小聚光灯。在本文中,我们将学习如何在 C# 中向图像添加标注。
本文涵盖以下主题:
什么是图像标注?
图片标注是叠加在图片上的信息标签,用于引起人们对特定部分的注意并解释其重要性。图片标注可以采用引导线或箭头的形式,在视觉上将标注文本与图片的突出显示区域连接起来。它们可以是标注文本框,其中包含所指出元素的简短说明或标识。
图像标注通常用于:
- 技术文档和教程:通过屏幕截图或图表指出特定的特性或功能。
- 演示:强调图像中的关键元素。
- 教育材料:标记插图或图表的各个部分。
使用 C# API 添加图像标注
为了在 C# 中以编程方式添加图像标注,我们将使用 Aspose.Drawing for .NET API。它是一个跨平台的 2D 图形库,用于以编程方式绘制文本、几何图形和图像。它提供了创建和添加图像标注的功能。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.Drawing
如何在 C# 中向图像添加标注
我们可以按照以下步骤以编程方式轻松地向图像添加标注:
- 使用 Image.FromFile() 方法加载图像。
- 使用 FromImage() 方法创建一个新的 Graphics 对象。
- 使用指定的颜色和大小初始化 Pen 类对象来绘制标注。
- 使用指定的颜色和大小定义标注元素的位置。
- 之后,使用 DrawString() 方法写入文本。
- 最后,使用 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));
}
获取免费许可证
您可以获取免费临时许可证试用 Aspose.Drawing for .NET,不受评估限制。
照片标注 – 免费资源
除了为照片和图像添加标注外,您还可以使用以下资源探索图书馆的其他各种功能:
结论
在这篇文章中,我们学习了如何使用 C# 以编程方式向图像和照片添加标注。向图像添加标注是一种简单而有效的方法,可以增强内容的视觉吸引力和可用性。通过遵循概述的步骤并使用提供的代码示例,您可以轻松地引起人们对图像中关键元素的注意。如有任何疑问,请随时通过我们的 免费支持论坛 与我们联系。