C# ile Grafik Programlama

C# dilinde grafik programlama, düşündüğünüzden daha kolay veya daha zor görünebilir. Bu makalede, programlı olarak çarpıcı vektör grafikleri oluşturmayı öğreneceksiniz. İster mevcut projenizin bir parçası olarak ister kendi oyununuzun veya uygulamanızın temeli olarak grafikler oluşturun! Güzel görselleri kolaylıkla oluşturmayı öğreneceksiniz. Başlayalım!

Bu yazıda aşağıdaki konular ele alınacaktır:

  1. C# Vektör Grafikleri Programlama API’sı
  2. Bir Vektör Grafiğinin Yapısı
  3. C# Kullanarak Grafik Programlama
  4. Grafik Programlamada Eğriler
  5. Çokgenler ve Dikdörtgenler
  6. Çizgiler Nasıl Çizilir
  7. Yollar Nasıl Çizilir
  8. Bir Dolgu Bölgesi Çizin

C# Vektör Grafikleri Programlama API’sı - Ücretsiz İndirme

C# dilinde çarpıcı vektör grafikleri oluşturmak için Aspose.Drawing for .NET API’sini kullanacağız. Metin, geometri ve görüntüleri programlı olarak çizmek için platformlar arası bir 2B grafik kitaplığıdır. [Desteklenen dosya biçimlerinin] yüklenmesine, kaydedilmesine ve değiştirilmesine 10 izin verir.

Lütfen API’nin [DLL’sini 11 indirin] veya NuGet kullanarak kurun.

PM> Install-Package Aspose.Drawing

Bir Vektör Grafiğinin Yapısı

Vektör grafikleri geometrik şekillerden oluşur: çizgiler, eğriler ve yollar. Uzunluk ve renk gibi çeşitli özelliklere sahip olan bu nesneler, bir C# programı tarafından manipüle edilebilir.

C# Kullanarak Grafik Programlama

Eğriler, çizgiler, dikdörtgenler, doldurulmuş bölgeler, elipsler ve çokgenler dahil olmak üzere çeşitli şekiller boyayabilir veya çizebiliriz. API, bu şekilleri çizmek için çeşitli yöntemler sağlar. Aşağıda verilen adımları izleyerek programlı olarak çeşitli farklı vektör grafikleri oluşturabiliriz:

  1. Bitmap sınıfından bir nesne oluşturun.
  2. Bit eşlemden Graphics sınıfının bir nesnesini başlatın.
  3. İstenen parametrelerle bir Kalem veya SolidBrush sınıf nesnesi tanımlayın.
  4. İstenen şekli/şekilleri çizmek için Graphics sınıfının şekle özgü yöntem(ler)ini kullanın.
  5. Sonunda görüntüyü kaydedin.

Şimdi bu adımları C# ile nasıl gerçekleştireceğimize bakalım.

C# Kullanarak Grafik Programlamada Eğriler

Aşağıdaki yöntemleri kullanarak yaylar, daireler, elipsler veya kapalı eğriler çizebiliriz:

  • Bir yay çizmek için DrawArc() yöntemi.
  • Bir elips çizmek için DrawEllipse() yöntemi.
  • Kapalı bir eğri çizmek için DrawClosedCurve() yöntemi.
  • Bir eğri çizmek için DrawCurve() yöntemi.

Eğri bir şekil çizmek için lütfen aşağıdaki adımları takip edin:

  1. İlk olarak, Bitmap sınıfının bir örneğini oluşturun.
  2. Ardından, yeni oluşturulan Bitmap nesnesinden FromImage() yöntemini kullanarak Graphics sınıfı nesnesini oluşturun.
  3. Ardından, belirtilen renk ve boyuta sahip bir Pen sınıfı nesnesi tanımlayın.
  4. Bundan sonra, kapalı bir eğri çizmek için DrawClosedCurve() yöntemini çağırın.
  5. İsteğe bağlı olarak, bir yay ve elips eklemek için yukarıdaki adımları tekrarlayın.
  6. Son olarak, çıktı görüntüsünü Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde eğri şekillerin nasıl boyanacağını gösterir.

// Bu kod örneği, kapalı bir eğri, yay ve dairenin nasıl çizileceğini gösterir.
// Bit eşlem oluştur
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap'ten Başlangıç Grafikleri
Graphics graphics = Graphics.FromImage(bitmap);

// Çizmek için bir Kalem tanımlayın
Pen penBlue = new Pen(Color.Blue, 4);

// Bir eğri çiz
graphics.DrawClosedCurve(penBlue, new Point[] { new Point(10, 700), new Point(250, 500), new Point(500, 10), new Point(750, 500), new Point(990, 700) });

// Bir Yay Çiz
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawArc(penRed, 0, 0, 700, 700, 0, 180);

// Elips Çiz
Pen penGreen = new Pen(Color.Green, 2);
graphics.DrawEllipse(penGreen, 10, 10, 500, 500);

// Bit eşlemi PNG olarak kaydet
bitmap.Save("C:\\Files\\Drawing\\Curves.png");
C# Kullanarak Grafik Programlamada Eğriler

C# Kullanarak Grafik Programlamada Eğriler

C# Kullanarak Grafik Programlamada Çokgenler ve Dikdörtgenler

Daha önce bahsedilen adımları izleyerek çokgenler ve dikdörtgenler çizebiliriz. Ancak 4. adımda aşağıdaki yöntemleri kullanmamız gerekiyor:

  • Çokgen çizmek için DrawPolygon() yöntemi.
  • Bir dikdörtgen çizmek için DrawRectangle() yöntemi.

Aşağıdaki kod örneği, C# dilinde çokgenlerin ve dikdörtgenlerin nasıl çizileceğini gösterir.

// Bu kod örneği, bir Çokgen ve Dikdörtgenin nasıl çizileceğini gösterir.
// Bit eşlem oluştur
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap'ten Başlangıç Grafikleri
Graphics graphics = Graphics.FromImage(bitmap);

// Çizmek için bir Kalem tanımlayın
Pen penBlue = new Pen(Color.Blue, 4);

// Çokgen Çiz
graphics.DrawPolygon(pen, new Point[] { new Point(100, 100), new Point(500, 700), new Point(900, 100) });

// Dikdörtgen Çiz
Pen penRed = new Pen(Color.Red, 2);
graphics.DrawRectangle(penRed, 10, 10, 900, 700);

// Bit eşlemi PNG olarak kaydet
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
CSharp Kullanarak Bit Eşlem İçinde Görüntü Yükleme

C# kullanarak Bitmap’te Görüntü Yükleme

C# Kullanarak Grafik Programlamada Çizgiler

Benzer şekilde, daha önce bahsedilen adımları izleyerek çizgiler çizebiliriz. Ancak bir çizgi çizmek için 4. adımda DrawLine() yöntemini kullanmamız gerekiyor.

Aşağıdaki kod örneği, C# dilinde çizgilerin nasıl çizileceğini gösterir.

// Bu kod örneği, bir Çizginin nasıl çizileceğini gösterir.
// Bit eşlem oluştur
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap'ten Başlangıç Grafikleri
Graphics graphics = Graphics.FromImage(bitmap);

// Çizmek için bir Kalem tanımlayın
Pen penBlue = new Pen(Color.Blue, 4);

// Çizgi Çiz
graphics.DrawLine(pen, 10, 700, 500, 10);
graphics.DrawLine(pen, 500, 10, 990, 700);

// Bit eşlemi PNG olarak kaydet
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
C# Kullanarak Grafik Programlamada Çizgiler

C# Kullanarak Grafik Programlamada Çizgiler

C# Kullanarak Grafik Programlamada Yollar

Vektör grafiklerinde yol, diğer noktalarla birlikte bir başlangıç ve bitiş noktası tarafından tanımlanan bir dizi düzgün düz çizgiyi temsil eder. Aşağıda verilen adımları izleyerek bir yol çizebiliriz:

  1. İlk olarak, Bitmap sınıfının bir örneğini oluşturun.
  2. Ardından, FromImage() yöntemini kullanarak yeni oluşturulan Bitmap nesnesinden Graphics sınıfı nesnesini başlatın.
  3. Ardından, belirtilen renk ve boyuta sahip bir Pen sınıfı nesnesi tanımlayın.
  4. Ardından, GraphicsPath sınıfının bir örneğini oluşturun.
  5. Ardından, AddLine() yöntemini kullanarak satırlar ekleyin.
  6. Bundan sonra, Pen ve GraphicsPath nesneleri ile DrawPath() yöntemini çağırın.
  7. Son olarak, çıktı görüntüsünü Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde bir yolun nasıl çizileceğini gösterir.

// Bu kod örneği, bir Yolun nasıl çizileceğini gösterir.
// Bit eşlem oluştur
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap'ten Başlangıç Grafikleri
Graphics graphics = Graphics.FromImage(bitmap);

// Çizmek için bir Kalem tanımlayın
Pen penBlue = new Pen(Color.Blue, 4);

// Grafik yolunu başlat
GraphicsPath path = new GraphicsPath();

// 1. satırı ekle
path.AddLine(100, 100, 1000, 400);

// 2. satırı ekle
path.AddLine(1000, 600, 300, 600);

// Dikdörtgen Ekle
path.AddRectangle(new Rectangle(500, 350, 200, 400));

// Elips Ekle
path.AddEllipse(10, 250, 450, 300);

// Bir Yol Çiz
graphics.DrawPath(pen, path);

// Bit eşlemi PNG olarak kaydet
bitmap.Save("C:\\Files\\Drawing\\Shapes.png");
C# Kullanarak Grafik Programlamada Yollar

C# Kullanarak Grafik Programlamada Yollar

C# Kullanarak Grafik Programlamada Bölgeyi Doldurun

Aşağıda verilen adımları izleyerek bir dolgu bölgesi çizebiliriz:

  1. İlk olarak, Bitmap sınıfının bir örneğini oluşturun.
  2. Ardından, FromImage() yöntemini kullanarak yeni oluşturulan Bitmap nesnesinden Graphics sınıfı nesnesini başlatın.
  3. Ardından, GraphicsPath sınıfının bir örneğini oluşturun.
  4. Bu arada, AddPolygon() yöntemini kullanarak bir çokgen ekleyin.
  5. Ardından, Region sınıfının bir örneğini oluşturun.
  6. Ardından, başka bir GraphicsPath nesnesi ekleyin ve AddRectangle() yöntemini kullanarak bir dikdörtgen ekleyin.
  7. Ardından, iç yolu bölgeden dışlamak için Exclude() yöntemini çağırın.
  8. Ardından, belirtilen renge sahip bir SolidBrush sınıf nesnesi tanımlayın.
  9. Bundan sonra, SolidBrush ve GraphicsPath nesneleri ile FillRegion() yöntemini çağırın.
  10. Son olarak, çıktı görüntüsünü Save() yöntemini kullanarak kaydedin.

Aşağıdaki kod örneği, C# dilinde dolu bir bölgenin nasıl çizileceğini gösterir.

// Bu kod örneği, bir Bölgenin nasıl çizileceğini gösterir.
// Bit eşlem oluştur
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);

// Bitmap'ten Başlangıç Grafikleri
Graphics graphics = Graphics.FromImage(bitmap);

// Çokgen Ekle
path.AddPolygon(new Point[] { new Point(100, 400), new Point(500, 100), new Point(900, 400), new Point(500, 700) });

// Bir Bölge Başlat
Region region = new Region(path);

// Dahili Grafik Yolu
GraphicsPath innerPath = new GraphicsPath();

// Dikdörtgen Ekle
innerPath.AddRectangle(new Rectangle(300, 300, 400, 200));

// İç yolu hariç tut
region.Exclude(innerPath);

// Katı bir fırça tanımlayın
Brush brush = new SolidBrush(Color.Blue);

// Bölgeyi doldur
graphics.FillRegion(brush, region);

// Bit eşlemi PNG olarak kaydet
bitmap.Save("C:\\Files\\Drawing\\Lines.png");
C# Kullanarak Grafik Programlamada Bölgeyi Doldurun

C# Kullanarak Grafik Programlamada Bölgeyi Doldurun

Ücretsiz Geçici Lisans Alın

Aspose.Drawing for .NET’i değerlendirme sınırlamaları olmaksızın denemek için ücretsiz bir geçici lisans alabilirsiniz.

Çözüm

Bu makalede, şunların nasıl yapılacağını öğrendik:

  • yeni bir bit eşlem oluştur;
  • bir bitmap üzerinde dikdörtgen, elips vb. çizin;
  • çizgiler ve yollar çizin;
  • bir Bitmap görüntüsünü C# dilinde PNG olarak kaydedin.

C# ile grafik programlamanın yanı sıra, dokümantasyon kullanarak Aspose.Drawing for .NET hakkında daha fazla bilgi edinebilir ve API tarafından desteklenen çeşitli özellikleri keşfedebilirsiniz. Herhangi bir belirsizlik durumunda, lütfen ücretsiz destek forumumuzda bizimle iletişime geçmekten çekinmeyin.

Ayrıca bakınız