Добавить выноску к изображению в C# | Выноски к фотографиям | Выноски изображений

Выноска изображения — это графический элемент, который помогает привлечь внимание к определенным частям изображения или фотографии. Выноски — это секретное оружие, позволяющее сделать любой визуальный контент более понятным и впечатляющим. Думайте о них как о крошечных прожекторах, освещающих самые важные части вашего изображения. В этой статье мы узнаем, как добавлять выноски к изображениям в C#.

В этой статье рассматриваются следующие темы:

  1. Что такое выноски изображений
  2. C# API для добавления выносок изображений
  3. Как добавить выноски к изображениям в C#
  4. Бесплатные ресурсы

Что такое выноски изображений?

Выноски изображений — это информационные метки, накладываемые на изображение, чтобы привлечь внимание к определенным частям и объяснить их значение. Выноски изображений могут иметь форму выносных линий или стрелок, визуально соединяющих текст выноски с выделенными областями изображений. Это могут быть текстовые поля-выноски, содержащие краткое пояснение или обозначение выделенных элементов.

Выноски изображений обычно используются в:

  • Технические документы и руководства: для указания конкретных функций или функций на снимках экрана или диаграммах.
  • Презентации: чтобы подчеркнуть ключевые элементы изображения.
  • Учебные материалы: для обозначения частей иллюстрации или графика.

C# API для добавления выносок изображений

Для программного добавления выносок изображений в C# мы будем использовать API Aspose.Drawing for .NET. Это кроссплатформенная библиотека 2D-графики для программного рисования текста, геометрии и изображений. Он предоставляет возможность создавать и добавлять выноски к вашим изображениям.

Пожалуйста, либо загрузите DLL API, либо установите его с помощью NuGet.

PM> Install-Package Aspose.Drawing

Как добавить выноски к изображениям в C#

Мы можем легко добавить выноски к изображениям программно, выполнив следующие шаги:

  1. Загрузите изображение с помощью метода Image.FromFile().
  2. Создайте новый объект Graphics, используя метод FromImage().
  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#. Добавление выносок к изображениям может быть простым, но эффективным способом повысить визуальную привлекательность и удобство использования вашего контента. Следуя описанным шагам и используя предоставленный пример кода, вы можете легко привлечь внимание к ключевым элементам ваших изображений. В случае возникновения каких-либо неясностей, пожалуйста, свяжитесь с нами на нашем бесплатном форуме поддержки.

Смотрите также