Graphics Sınıfı Kullanımı

0

Bir önceki bölümde değindiğimiz  Bitmap Sınıfı, RGB ve DPI Kavramı konusundan sonra bu bölümde de Bitmap sınıfı üzerinde işlem yapmamızı sağlayacak Graphics sınıfına değineceğiz.

Graphics Kullanımı

Bir resmin üzerine şekiller çizmek için graphics kullanılabilir. Grapchics kullanarak resmin üzerine şekil çizmek istersek ,tıpkı filtereler gibi resmin belirli bir formtlarda olması gerekmektedir.Graphics nesnesi

  • Format1bppIndexed
  • Format4bppIndexed
  • Format8bppIndexed

Formatlarını desteklemez.Bu formatlı resimler kullanıldığında “A Graphics object cannot be created from an image that has an indexed pixel format.” şeklinde bir hata mesajı ile karşılaşılır.

Bir Graphics nesnesi yaratırken FromImage methodunu kullanarak hangi resim üzerinde işlem gerçekleştireceğimizi belirtebiliriz.

Graphics g = Graphics.FromImage(bmp);

Çizilecek şeklin hangi renkle çizileceğini belirtmek Pen sınıfını kullanılır. İkinci parametre ise kalemin kalınlığını belirler.

Pen pensiyah=new Pen(Color.Black,2);

Dikdörtgen çizmek için DrawRectangle methodu kullanılır. İlk parametre çizilicek kalemi belirtilir. Daha sonra rectangle verilerek hangi koordinata çizelceği belirtilir.

g.DrawRectangle(pensiyah, new Rectangle(0, 0, 40, 50));

Aşağıdaki kod ile graphics kullanarak, bir resmin üzerine bir resim de çizelebilir.

g.DrawImage(bmp,new PointF(100,200));

Drawline methodu kullanarak da iki nokta arasında bir çizgi çizebiliriz.

g.DrawLine(new Point(3, 5), new Point(8, 9));

DrawPolygon methodu ile de poligonlar çizebiliriz. Fonksiyonun ikinci paramteresi bir Point dizisi almaktadır. Bu sayede kaç tane nokta olursa olsun o noktaları birleştirerek bir poligon oluşturur.

Point noktalar=new Point[4];
g.DrawPolygon(pen,noktalar);

FillRectangle  methodunu kullanarak içi dolu bir diktörgen çizebiliriz. DrawRectangle methodundan farklı olarak FillRectangle methodunda çizilen dikdörtgenin içininde boyalı olarak gelmesidir. Bunun için  SolidBrush sınıfı parametere olarak verilmelidir.Brush sınıfını oluşturken ise hangi renkte olacağını belirtiriz.

SolidBrush brush = new SolidBrush(Color.Black);
g.FillRectangle(brush,new Rectangle(5,5,30,40));

FillRectangle ve DrawRectangle farkı

CEVAP VER

Lütfen yorum giriniz!
Lütfen isminizi giriniz