
En bildsamtalsruta är ett grafiskt element som hjälper till att dra uppmärksamhet till specifika delar av en bild eller ett foto. Samtalsrutor är ett hemligt vapen för att göra visuellt innehåll tydligare och mer slagkraftigt. Tänk på dem som små strålkastare som lyser på de viktigaste delarna av din bild. I denna artikel kommer vi att lära oss hur man lägger till samtalsrutor till bilder i C#.
Denna artikel täcker följande ämnen:
- Vad är bildsamtalsrutor?
- C# API för att lägga till bildsamtalsrutor
- Hur man lägger till samtalsrutor till bilder i C#
- Gratis resurser
Vad är bildsamtalsrutor?
Bildsamtalsrutor är informationsetiketter som superimponeras på en bild för att dra uppmärksamhet till specifika delar och förklara deras betydelse. Bildsamtalsrutor kan vara i form av ledarlinjer eller pilar, som visuellt kopplar samtalsrute-texten till de markerade områdena på bilderna. De kan vara samtalsrutekapplådor som innehåller en kort förklaring eller identifiering av de utpekade elementen.
Bildsamtalsrutor används ofta i:
- Tekniska dokument och handledningar: För att peka ut specifika funktioner eller funktionaliteter i skärmdumpar eller diagram.
- Presentationer: För att framhäva viktiga element inom en bild.
- Utbildningsmaterial: För att märka delar av en illustration eller graf.
C# API för att lägga till bildsamtalsrutor
För att lägga till bildsamtalsrutor programmässigt i C#, kommer vi att använda Aspose.Drawing för .NET API. Det är ett plattformsoberoende 2D-grafikbibliotek för att programmässigt rita text, geometriska former och bilder. Det tillhandahåller funktionalitet för att skapa och lägga till samtalsrutor till dina bilder.
Ladda ner DLL-filen för API:et eller installera det via NuGet.
PM> Install-Package Aspose.Drawing
Hur man lägger till samtalsrutor till bilder i C#
Vi kan enkelt lägga till samtalsrutor till bilder programmässigt genom att följa stegen nedan:
- Ladda bilden med Image.FromFile() metoden.
- Skapa ett nytt Graphics-objekt med FromImage() metoden.
- Initialisera ett Pen-klassobjekt med den angivna färgen och storleken för att rita samtalsrutorna.
- Definiera positionen för ett samtalsruteelement med den angivna färgen och storleken.
- Skriv sedan text med DrawString() metoden.
- Spara slutligen utdata bilden med Save() metoden.
Följande kodexempel visar hur man lägger till samtalsrutor till bilden i 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)); | |
} |

Lägg till samtalsrutor till bilder i C#
Få en gratis licens
Du kan få en gratis temporär licens för att prova Aspose.Drawing för .NET utan utvärderingsbegränsningar.
Samtalsrutor till foton – Gratis resurser
Förutom att lägga till samtalsrutor till foton och bilder kan du utforska olika andra funktioner i biblioteket med hjälp av resurserna nedan:
Slutsats
I detta inlägg har vi lärt oss hur man lägger till samtalsrutor till bilder och foton programmässigt i C#. Att lägga till samtalsrutor till bilder kan vara ett enkelt men effektivt sätt att förbättra det visuella intrycket och användbarheten av ditt innehåll. Genom att följa stegen och använda det medföljande kodexemplet kan du enkelt dra uppmärksamhet till viktiga element i dina bilder. Om du har några frågor, tveka inte att kontakta oss på vårt gratis supportforum.