
图像标注是一种图形元素,有助于吸引人们注意图像或照片的特定部分。呼应是使任何视觉内容更清晰、更有冲击力的秘密武器。可以把它们想象成照亮图片最重要部分的小聚光灯。在本文中,我们将学习如何在 C# 中为图像添加标注。
本文涵盖以下主题:
什么是图像标注
添加图像标注的 C# API
如何在 C# 中为图像添加标注
什么是图像标注?
图像标注是叠加在图像上的信息标签,用于引起人们对特定部分的注意并解释其意义。图像标注可以采用引导线或箭头的形式,在视觉上将标注文本与图像的突出显示区域连接起来。它们也可以是呼出文本框,包含对被指出元素的简要解释或标识。
图像标注常用于
技术文档和教程:在屏幕截图或图表中指出具体特征或功能。
演示文稿:强调图片中的关键元素。
教育材料:标注插图或图表的部分内容。
添加图像标注的 C# API
要在 C# 中以编程方式添加图像标注,我们将使用 Aspose.Drawing for .NET API。这是一个跨平台的 2D 图形库,用于以编程方式绘制文本、几何图形和图像。它提供了为图像创建和添加标注的功能。
请下载该 API 的 DLL 或使用 NuGet 安装。
PM> Install-Package Aspose.Drawing
如何在 C# 中为图像添加标注
通过以下步骤,我们可以轻松地以编程方式为图像添加注释:
使用 Image.FromFile() 方法加载图像。
使用 FromImage() 方法创建一个新的图形对象。
用指定的颜色和大小初始化一个 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# 编程为图像和照片添加标注。为图片添加标注是增强内容视觉吸引力和可用性的一种简单而有效的方法。按照所概述的步骤并使用所提供的代码示例,您就可以轻松地将注意力吸引到图片中的关键元素上。如有任何疑问,请随时与我们联系。
渝公网安备50010702505508