ASP.NET
Network Akademi

Met Hostimg

“Bilgi paylaşıldıkça artar” sloganı ile .NET Platformuna ilişkin birikimlerin paylaşıldığı ASP.NET.TR Topluluğunda sizde “YAZAR” olmak için ; info@asp.net.tr e-mail adresine kendinizi anlatan bir e-mail göndererek başvuruda bulunabilirsiniz.

GDI ( Graphics Device Interface)

Mahmut TEMUR
C#.NET
07.02.2010 19:51:12
Hit : 11848

Merhabalar arkadaşlar. Bu makalemizde GDI'ları inceleyeceğiz. Windows forms uygulamalarımızda zaman zaman projemizde çeşitli şekillerin vs.. çizimlerine ihtiyaç duyarız.
C# da Windows Forms uygulamalarımızda grafik işlemlerini yapan arayüzdür. GDI - Graphical Device Interface :    Windows, grafik aygıt arabirimi anlamına gelmekte.Uygulamalarda çizim yapabilmek için Graphics sınıfı kullanılır.

Graphics sınıfı  Graphics cizim =
new Graphics diyerek new ile türetilemez. çizim yapacak nesneye ait CreateGraphics methodu üzerinden oluşturulur.

Şidi bir örnekle bu durumu açıklığa kavuşturalım.



Senaryomuz şu olsun. Üst solda görüntüsü bulunan bir form oluşturalım. Texti Dikdörtgen Çiz olan Button'a tıklandığında üst sağda görüntüsü bulunan Formdaki gibi Formun sol köşesinde boyutlarını bizim belirleyeceğimiz bir dikdörtgen çizilsin.Tabi çizilecek olan bu dikdörtgenle ilgili en, boy, renk vs.. gibi özellikleri biz belirliyo olmalıyız.

Forma çizim yapmak için senaryomuzu uygulamaya koyuyoruz ve Texti Dikdörtgen Çiz olan Button1 e çift tıklayarak  Click olayına geçiyoruz.

 

Bir grafik nesnesi gsterildikten sonra ram de yer etmesine gerek yoktur.
Bu nesneyi fazla kaynak tkettii iin silmemiz en iyisidir...


Brush'lar: 4 Çeşit fırça vardır şimdi bunlarıda basit bir örnekle inceleyelim.

1 - Brushes
2 - TextureBrush :
  Bir şeklin içini bir görüntü ile dolduran bir fırça nesnesidir. Bu sınıf miras alınamaz.
3 - LinearGradientBrush : Belirli bir renkten başka bir renge doğru geçişlerin yapılması işlemine Gradient deniyor.   LinearGradientBrush doğrusal olarak renkler arası geçişlerin yapılmasına olanak sağlayan bir nesnedir ve tabiki buda miras alınamaz.
4 - SolidBrus : Tek renk bir fırça tanımlar.
Bu sınıf miras alınamaz.

Kısaca fırçaları tanıdıktan sonra şimdi geçelim örneğimizin ikinci aşamasına. Bu seferki senaryomuz şu Texti Elips Doldur olan Button2 ye tıklandığında bir elips çizilsin ve çizilecek olan bu elips içerisindede bizim belirleyeceğimiz bir resim elipsin sınırlarını aşmadan içerisinde görünsün.

Uygulamaya başlamak için Texti Elips doldur olan Button2 ye çift tıklayarak Click olayına geçelim ve kodlarımızı yazmaya başlayalım.

private void button2_Click(object sender, EventArgs e)
{
Graphics
cizim = this
.CreateGraphics();
Brush firca1 = Brushes
.Red;
SolidBrush firca2 = new SolidBrush(Color
.Red);
Point p1=new Point
(10,10);
Point p2=new Point
(50,50);
Rectangle dotgen = new Rectangle(0, 0, this.Width-50, this
.Height-50);

Eğer renk geicisinin 1 kere olmasını istersek brush'un alanını çizim yapılacak dikdörtgen olarak veririz..

 

LinearGradientBrush firca4 = new LinearGradientBrush(dotgen, Color.Silver, Color.Black, 90);
TextureBrush firca5=new TextureBrush(Image.FromFile(Application.StartupPath+ "/resimad.gif"
));

cizim.FillEllipse(firca5, dotgen);
cizim.Dispose();
}




Ve uygulamayı çalıştırıp Elips Doldur textli butona tıkladığımızda ise karşımıza elde etmek istediğimiz görüntü çıkıyor.

İhtiyaç duyanlar için umarım faydalı bi makale olmuştur.

Kalın sağlıcakla.

 

private void button1_Click(object sender, EventArgs e)
{
Graphics
cizim = this.CreateGraphics();
Pen kalem=new Pen(Color.SkyBlue,14);
Rectangle dortgen=new Rectangle(10,10,150,200);
cizim.DrawRectangle(kalem, dortgen);
cizim.Dispose();
}



BU İÇERİĞE YORUMDA BULUNUN


Bu MAKALE'ye yorum yapabilmek için Üye olmalısınız ...!


BU İÇERİĞE YAPILAN YORUMLAR