Makale Özeti

GDI+, .NET Framwork’deki System.Drawing sınıfı altında desteklenmektedir. Bu sınıf aracılığı ile Windows altında görsel özelliklere sahip uygulamalar geliştirebiliriz. GDI, C++ dili ile grafik çizmek için oluşturulmuş sınıflar kümesi idi. Ancak GDI sorunlu idi. Bunun üzerine GDI dili yenilendi ve GDI + haline getirdi. Öyle ki GDI düşük ve orta düzey programlama ortamı sağlıyordu. Ancak GDI + ile yüksek düzeyli programlama yapmak mümkün olabilmektedir.

Makale

GDI+
  GDI+, .NET Framwork’deki System.Drawing sınıfı altında desteklenmektedir. Bu sınıf aracılığı ile Windows altında görsel özelliklere sahip uygulamalar geliştirebiliriz. GDI, C++ dili ile grafik çizmek için oluşturulmuş sınıflar kümesi idi. Ancak GDI sorunlu idi. Bunun üzerine GDI dili yenilendi ve GDI + haline getirdi. Öyle ki GDI düşük ve orta düzey programlama ortamı sağlıyordu. Ancak GDI + ile yüksek düzeyli programlama yapmak mümkün olabilmektedir.

GDI+ içindeki tüm sınıflar 6 adet namespace içinde toplanmıştır;
System.Drawing
System.Drawing.Desing
System.Drawing.Printing
System.Drawing.Imaging
System.Drawing.Drawing2D
System.Drawing.Text

System.Drawing Sınıfı Metotları;

Metot Açıklama
AddMetaFileComment Var olan meta dosyasına text açıklama ekler.
BeginContainer Overloaded. Yeni grafik container başlatır.
Clear Graphics objesini ve özel renkleri temizler.
DrawArc Overloaded. Yay çizer.
DrawEllipseOverloaded. Elips çizer.
DrawImageOverloaded. Resim çizer.
DrawLineOverloaded. Çizgi çizer.
DrawLinesOverloaded. Ard arda bağlantılı satırlar çizer.
DrawPieOverloaded. Pasta çizer.
DrawPolygonOverloaded. Çokgen (poligon) çizer.
DrawRectangleOverloaded. Dikdörtgen çizer.
DrawRectanglesOverloaded. Ard arda dikdörtgenler çizer.
DrawStringOverloaded. Text çizer.
FillEllipseOverloaded. Brush kullanarak elipsin içini doldurur.
FillPieOverloaded. Brush kullanarak pastanın içini doldurur.
FillPolygonOverloaded. Brush kullanarak çokgenin içini doldurur.
FillRectangleOverloaded. Brush kullanarak dikdörtgenin içini doldurur.
FillRectanglesOverloaded. Brush kullanarak ard arda dikdörtgenlerin içini doldurur.
FillRegionBrush kullanarak belli bir bölgenin içini doldurur..
GetClipKesilen bölgeyi alır.
RestoreGraphics objesi ile yapılmış çalışmanın bir önceki kaydedilmiş haline gönderir.
SaveGraphics objesi ile yapılanları kaydeder.
.BMP Desteği Özellikle .bmp özellikli dosyalar üzerinde işlem yapabilmek için zengin bir destek sağlanmış.
  Dim b As Bitmap = New Bitmap(100, 100)
  b.Save("c:\yeliz.bmp")
  Gibi iki satırlık bir kodlama ile kaydedilebiliyor.
Visual Basic .NET içindeki Grafiksel Değişiklikler   Visual Basic 6’da birçok grafik metotları ve özellikleri PictureBox kontolü ile kullanılıyordu. Visual Basic 6’daki grafik işlemleri Windows Graphics Device Interface (GDI) API’sini kullanıyor. Visual Basic 6’dan Visual Basic.NET’e upgrade yapıldığı zaman grafik metotları upgrade edilmemektedir.
Karşılaştırmalı Örnek Uygulama
Form’a daire çizdiren örneği VB6 ve VB.NET ile karşılaştıralım.

   Visual Basic 6.0
  Private Sub Form_Click()
    Me.ScaleMode = 3
    Me.Circle (50, 50), 50, vbRed
  End Sub
   Visual Basic .NET
  Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Click
    Dim pen As New Drawing.Pen(System.Drawing.Color.Red, 1)
    Me.CreateGraphics.DrawEllipse(pen, 0, 0, 100, 100)
    Pen.Dispose
  End Sub
VB6’da Kullanılan Grafik Metotlarının VB.NET’deki Karşılıkları
VB6VB.NET Karşılığı
AutoRedraw ÖzelliğiDirek karşılığı yok. Ancak grafik metodunun Paint event ii ile yapabiliriz.
Circle MetoduGraphics.DrawEllipse Methodu
Cls MetoduGraphics.Clear Method
CurrentX ÖzelliğiBirçok metotda kullanılabilir halde mevcut. Ör: DrawRectangle(pen, x, y, width, height)
CurrentY ÖzelliğiBirçok metotda kullanılabilir halde mevcut. Ör: DrawRectangle(pen, x, y, width, height)
DrawMode ÖzelliğiPen.Color Özelliği.
DrawStyle ÖzelliğiPen.PenType Özelliği
DrawWidth ÖzelliğiPen.Width Özelliği
FillColor ÖzelliğiSolidBrush.Color Özelliği
FillStyle ÖzelliğiPen.Brush Özelliği.
Image ÖzelliğiVB6’da bu özellik elindeki değeri gönderirken, VB.NET’de System.Drawing.Image objesini geri gönderir.
Line MetoduGraphics.DrawLine Metodu
PaintPicture MetoduGraphics.DrawImage Metodu.
Point MetoduDirek karşılığı yok. .bmp’ler için Bitmap.GetPixel Metodu kullanılabilir.
Print MetoduGraphics.DrawString Metodu.(Verilen yazının istenen görüntü özelliklerine gore çizilmesini sağlar.)
TextHeight ÖzelliğiFont.Height Özelliği.(Verilen metin ifadesinin boyunu ayarlar.)
TextWidth ÖzelliğiGraphics.DrawString Metodu altında RectangleF özelliği ile kullanabiliriz.

Yeliz Korkmaz
yelizkorkmaz@tnn.net