Det krävs ofta att man skapar olika grafiska objekt genom att rita former inklusive cirklar, linjer, rektanglar, etc. Dessa former kan också användas för att kommentera bilderna. I den här artikeln får du lära dig hur du ritar olika former programmatiskt i C#. Vi kommer att demonstrera hur man ritar linjer, ellipser, bågar och rektanglar och genererar deras bilder.
- C# API för att rita former - Gratis nedladdning
- Rita en linje med C#
- Rita en ellips med C#
- Rita en båge med C#
- Rita en rektangel med C#
C# API för att rita former - Gratis nedladdning
För att rita olika typer av former kommer vi att använda Aspose.Imaging for .NET. Det är ett fantastiskt bildredigerings-API som ger ett brett utbud av funktioner för att manipulera bilder och skapa ritningar. Du kan antingen ladda ner API:t eller installera det från NuGet.
PM> Install-Package Aspose.Imaging
Rita en linje med C#
Följande är stegen för att rita en linje i C#.
- Skapa först ett objekt av klassen BmpOptions och ställ in bitar per pixel med egenskapen BitsPerPixel.
- Tilldela sedan StreamSource med egenskapen Source.
- Skapa en ny bild och initiera den med BmpOptions-objektet och bildens höjd och bredd.
- Skapa ett objekt av klassen Graphics och initiera det med objektet Image.
- Rensa bildens yta med lite färg med metoden Graphics.Clear().
- Rita en linje med metoden Graphics.DrawLine(Pen, int, int, int, int).
- Skapa och spara bild med metoden Image.Save().
Följande kodexempel visar hur man ritar en linje i C#.
// Skapa BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definiera källegenskapen för instansen av BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Skapar en instans av Image and call create-metoden genom att skicka
// bmpCreateOptions-objekt
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Skapa och initiera en instans av grafikklassen
Graphics graphic = new Graphics(image);
// Rensa bildytan med vit färg
graphic.Clear(Color.White);
// Rita en prickad linje genom att ange att Pen-objektet har blå färg och
// samordna punkter
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 18, 200, 200);
graphic.DrawLine(new Pen(Color.Blue, 3), 18, 200, 200, 18);
// Rita en kontinuerlig linje genom att ange att Pen-objektet har Solid
// Borsta med röd färg och tvåpunktsstrukturer
graphic.DrawLine(new Pen(new SolidBrush(Color.Red), 3),
new Point(18, 18), new Point(18, 200));
// Rita en kontinuerlig linje genom att ange att Pen-objektet har Solid
// Pensla med vit färg och tvåpunktsstrukturer
graphic.DrawLine(new Pen(new SolidBrush(Color.Orange), 3),
new Point(200, 18), new Point(18, 18));
// Spara alla ändringar
image.Save("draw_lines.bmp");
Följande är resultatet av ovanstående kodexempel.
Rita en ellips med C#
Följande är stegen för att rita en ellips i C#.
- Skapa först ett objekt av klassen BmpOptions och ställ in bitar per pixel med egenskapen BitsPerPixel.
- Tilldela sedan StreamSource med egenskapen Source.
- Skapa en ny bild och initiera den med BmpOptions-objektet och bildens höjd och bredd.
- Skapa ett objekt av klassen Graphics och initiera det med objektet Image.
- Rensa bildens yta med lite färg med metoden Graphics.Clear().
- Rita en ellips med metoden Graphics.DrawEllipse(Pen, Rectangle).
- Skapa och spara bild med metoden Image.Save().
Följande kodexempel visar hur man ritar en ellips på en bild i C#.
// Skapa BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definiera källegenskapen för instansen av BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Skapar en instans av Image and call create-metoden genom att skicka
// bmpCreateOptions-objekt
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Skapa och initiera en instans av grafikklassen
Graphics graphic = new Graphics(image);
// Rensa bildytan med vit färg
graphic.Clear(Color.White);
// Rita en prickad ellipsform genom att ange att Pen-objektet har rött
// färg och en omgivande rektangel
graphic.DrawEllipse(new Pen(Color.Red, 3), new Rectangle(60, 40, 70, 120));
// Rita en kontinuerlig ellipsform genom att ange vilket Pen-objekt som har
// solid brush with blue färg och en omgivande rektangel
graphic.DrawEllipse(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Spara alla ändringar
image.Save("draw_ellipse.bmp");
Följande är resultatet av ovanstående kodexempel.
Rita en båge med C#
Följande är stegen för att rita en båge i C#.
- Skapa först ett objekt av klassen BmpOptions och ställ in bitar per pixel med egenskapen BitsPerPixel.
- Tilldela sedan StreamSource med egenskapen Source.
- Skapa en ny bild och initiera den med BmpOptions-objektet och bildens höjd och bredd.
- Skapa ett objekt av klassen Graphics och initiera det med objektet Image.
- Rensa bildens yta med lite färg med metoden Graphics.Clear().
- Rita båge med hjälp av metoden Graphics.DrawArc(Pen, float x, float y, float width, float höjd, float startAngle, float sweepAngle).
- Skapa och spara bild med metoden Image.Save().
Följande kodexempel visar hur man ritar en båge på en bild i C#.
// Skapa BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definiera källegenskapen för instansen av BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Skapar en instans av Image and call create-metoden genom att skicka
// bmpCreateOptions-objekt
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Skapa och initiera en instans av grafikklassen
Graphics graphic = new Graphics(image);
// Rensa bildytan med vit färg
graphic.Clear(Color.White);
// Rita en prickad bågeform genom att ange att Pen-objektet har rött svart
// färg och koordinater, höjd, bredd, start- och slutvinklar
int width = 200;
int height = 300;
int startAngle = 45;
int sweepAngle = 270;
// Rita båge till skärmen
graphic.DrawArc(new Pen(Color.Black, 3), 0, 0, width, height, startAngle, sweepAngle);
// Spara alla ändringar
image.Save("draw_arc.bmp");
Följande är resultatet av ovanstående kodexempel.
Rita en rektangel med C#
Följande är stegen för att rita en rektangel i C#.
- Skapa först ett objekt av klassen BmpOptions och ställ in bitar per pixel med egenskapen BitsPerPixel.
- Tilldela sedan StreamSource med egenskapen Source.
- Skapa en ny bild och initiera den med BmpOptions-objektet och bildens höjd och bredd.
- Skapa ett objekt av klassen Graphics och initiera det med objektet Image.
- Rensa bildens yta med lite färg med metoden Graphics.Clear().
- Rita en rektangel med metoden Graphics.DrawRectangle(Pen, Rectangle).
- Skapa och spara bild med metoden Image.Save().
Följande kodexempel visar hur man ritar en rektangel på en bild i C#.
// Skapa BmpOptions
BmpOptions bmpCreateOptions = new BmpOptions();
bmpCreateOptions.BitsPerPixel = 32;
// Definiera källegenskapen för instansen av BmpOptions
bmpCreateOptions.Source = new StreamSource();
// Skapar en instans av Image and call create-metoden genom att skicka
// bmpCreateOptions-objekt
Image image = Image.Create(bmpCreateOptions, 500, 500);
// Skapa och initiera en instans av grafikklassen
Graphics graphic = new Graphics(image);
// Rensa bildytan med vit färg
graphic.Clear(Color.White);
// Rita en prickad rektangelform genom att ange att Pen-objektet har rött
// färg och en rektangelstruktur
graphic.DrawRectangle(new Pen(Color.Red, 3),
new Rectangle(60, 40, 70, 120));
// Rita en kontinuerlig rektangel genom att ange vilket Pen-objekt som har
// solid brush with blue färg och en rektangelstruktur
graphic.DrawRectangle(new Pen(new SolidBrush(Color.Blue), 3),
new Rectangle(40, 60, 120, 70));
// Spara alla ändringar
image.Save("draw_reactangle.bmp");
Följande är resultatet av ovanstående kodexempel.
C# .NET Image Drawing API - Skaffa en gratis licens
Du kan få en gratis tillfällig licens och rita former utan utvärderingsbegränsningar.
Slutsats
I den här artikeln har du lärt dig hur du ritar former i C#. Vi har täckt hur man ritar linjer, ellipser, bågar och rektanglar på bilder programmatiskt. Du kan enkelt integrera de medföljande kodexemplen i dina C#-applikationer.
Läs mer
Du kan utforska mer om .NET-bildbehandlings-API:et med hjälp av dokumentation. Du kan också dela dina frågor med oss via vårt forum.