Bu site emekli olmuştur. Arşiv amaçlı olarak BT AKADEMİ sponsorluğunda yayın hayatına devam etmektedir.




C#nedir?com
 
YAZAR HAKKINDA
Muhanad YOUNIS
Muhanad YOUNIS
http://www.csharpnedir.com/
İletişme geçmek için tıklayın.
1 Makalesi yayınlanmakta.
Yazar hakkında detaylı bilgi için tıklayın.
Yayınlanan diğer makaleleri için tıklayın.
İlgili etiketler: bakalim bitmap degeri grafik graphics hattin ismini koordinati random rasgele resmimizi sayfada sayiyi sender veriyoruz C# / VC#/.NET Muhanad YOUNIS
 
YAZI HAKKINDA
Türü : Makale
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
Seviyesi : Orta
Kategori : C# / VC#/.NET
Yayınlanma Tarihi : 24.7.2005
Okunma Sayısı : 26119
Yorum Sayısı : 2     yorum yaz
Site İçi AramaSİTE İÇİ ARAMA
Üye Girişini AçÜye GİRİŞİ
Üye girişi için tıklayın.
Kullanıcı Adı
Şifre
 
Beni her zaman hatırla
Bir hafta boyunca kullanıcı bilgilerinizi kullanıcı çıkışı yapana kadar hatırlar. (Paylaşılan bilgisayarlarda önerilmez.)
 
Şifremi / Kullanıcı Adımı unuttum.
 
.net TV RSS Serbest KÖŞE (?)
Serbest Köşede C#nedir?com üyelerinin hazırladıkları yazılar yayınlanır. Bu yazılar editör incelemesine girmeden yayınlanır.
emre TAŞ
Silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
emre TAŞ
silindi
emre TAŞ
yazının devamı >
Makale Gönder Bende Yazmak İstiyorum
.net TV RSSBlogroll
Turhal Temizer
Conda install environment.yml Package 23.11.2024
Turhal Temizer
Mac OS/X Removing CUDA 23.11.2024
Burak Selim Şenyurt
Rust ile ECS Yaklaşımını Anlamak 23.11.2024
Burak Selim Şenyurt
Birlikte Rust Öğrenelim Serisi 23.11.2024
  Diğer Herşey
Sponsorlar
BT Akademi
Medya Portakal
Video Hosting Sponsoru
Csharpnedir.com bir Ineta üyesidir
Uzman Abi
Her Yönüyle C# - Sefer Algan
GDI+ ve Asp.Net
 
Kapat
Sayfayı Yazdır Sık Kullanılanlara Ekle Arkadaşıma Gönder MySpace Del.Ico.Us Digg Facebook Google Mixx Reddit StumbleUpon
Bu yazıyı yazmadan önce çok düşündüm, insanlar GDI+`ı  asp.net içinde nasıl kullanabilir yada neler yapabilir? Ki gördüğüm kadarı ile bu konu ile ilgili fazla soru gelmemektedir. Buda iki anlama gelebilir,

1. Ya her kes bu konuyu çok iyi biliyor !!!
2. Ya da bu konuyu iyi bilmedikleri için GDI`ı fazla önemsemez oldular.

Bunun için bu GDI+ hakkında ufak bir makale yazma gereği duydum, umarım size yardımcı olur.

Herkesin bildiği gibi GDI+ asp.net`e özgü bir olay değil ki Windows application da çok fazla kullanılmaktadır. Bu makalede; GDI+`ın  kod doğrulamada nasıl kullanıldığını anlatacağım. Hepimiz görmüşüzdür, bir e-mail adresi alırken yada bir sayfada kayıt olurken bizden karmaşık şekilde yazılan birkaç sayıyı yada harfi textbox içinde doğrulamak için yazmamızı ister, o da otomatik kaydı engellemek için yapılır. İsterseniz başlayalım, aşağıdaki resmi elde edebilmek için bu kodu Page_load kısmına yazmanız yeterli olacak ve daha sonra onun üstüne ilave edeceğiz.


Resim 1

Koda bakalım

private void Page_Load(object sender, System.EventArgs e)
{
    Bitmap bmp; // resmimizi tanımlıyoruz
    Graphics gfx; // resmi eklemek için gereken grafik tanımlamasını yapıyoruz
    Font fnt;// kullanacağımız fontu yaratıyoruz.
    Random rasgele =new Random(); // ilerde kullanmak üzere bir rasgele sayı yaratan Random yaratıyoruz
    int rndsayi=rasgele.Next(10000,99999);// rasgele sayı için en küçük ve en büyük değeri yazıyoruz.
    bmp=new Bitmap(80,45);// resmimizi(kare) px olarak, enini ve boyunu tanımlıyoruz.
    gfx=Graphics.FromImage(bmp);// resmimizi grafik objenin içinde yerleştiriyoruz
    fnt=new Font("Times New Roman",12);// fontun ismini ve büyüklüğünü veriyoruz
    gfx.DrawString(rndsayi.ToString(), fnt, Brushes.Yellow, 15, 15);// rasgele sayıyı çiziyoruz
    bmp.Save(Response.OutputStream, ImageFormat.Gif); //resim sayfada görünsün diye outputstream kullanıyoruz ve encode parametrelerini veriyoruz
}
Şimdi ise tek ihtiyacınız kullanıcının bu rasgele sayıyı girebileceği bir textbox`u ve girdiği değeri bu sayı ile karşılaştırarak doğru olup olmadığını doğrulamak ve kaydını yapmaktır. Peki, eğer resim 2 deki gibi bir resme ihtiyacımız varsa neler yapmalıyız? Onuda bu kodla Gerçekleştirebiliriz;



Resim 2 

Koda bakalım

private void Page_Load(object sender, System.EventArgs e)
{
    Bitmap bmp; // resmimizi tanımlıyoruz
    Graphics gfx; // resmi eklemek için gereken grafik tanımlamasını yapıyoruz
    Font fnt;// kullanacağımız fontu yaratıyoruz.
    Random rasgele =new Random(); // ilerde kullanmak üzere bir rasgele sayı yaratan Random yaratıyoruz
    int rndsayi=rasgele.Next(10000,99999);// rasgele sayı için en küçük ve en büyük değeri yazıyoruz.
    bmp=new Bitmap(80,45);// resmimizi(kare) px olarak, enini ve boyunu tanımlıyoruz.
    gfx=Graphics.FromImage(bmp);// resmimizi grafik objenin içinde yerleştiriyoruz
    fnt=new Font("Times New Roman",12);// fontun ismini ve büyüklüğünü veriyoruz
    gfx.DrawString(rndsayi.ToString(), fnt, Brushes.Yellow, 15, 15);// rasgele sayıyı çiziyoruz

    int rndbirincihat1 = rasgele.Next(0, 45);//birinci hattın y koordinatlarını veriyoruz 
     int rndbirincihat2 = rasgele.Next(0, 45);//birinci hattın y koordinatlarını veriyoruz 
     gfx.DrawLine(Pens.Yellow, 0, rndbirincihat1, 80, rndbirincihat2);// birinci hattı çiziyoruz  

     int rndikincihat1 = rasgele.Next(0, 45);//ikinci hattın y koordinatlarını veriyoruz 
     int rndikincihat2 = rasgele.Next(0, 45);//ikinci hattın y koordinatlarını veriyoruz
 
     //dikkatinizi çekti ise biz hep y koordinatı tanımladık ya x koordinatı ne olacak?
     //x koordinatı karemizin başlangıç ve bitiş koordinatlarının kendisidir 0 ve 80
     
     gfx.DrawLine(Pens.Yellow, 0, rndikincihat1, 80, rndikincihat2);//ikinci hattı çiziyoruz

    bmp.Save(Response.OutputStream, ImageFormat.Gif); //resim sayfada görünsün diye outputstream kullanıyoruz ve encode parametrelerini veriyoruz
}
Tabi bu kodu kullanarak istediğiniz eklemeyi yapabilirsiniz, bu sadece hatlar şeklinde değil daireler ya da üçgenler veya aklınıza ne geliyorsa. Bu size bağlı. Yukarıdaki işlemlere ilave olarak, Resim 3 elde etmek için bu kodu ilave edeceğiz.


Resim 3 

Koda bakalım

private void Page_Load(object sender, System.EventArgs e)
{
    Bitmap bmp; // resmimizi tanımlıyoruz
    Graphics gfx; // resmi eklemek için gereken grafik tanımlamasını yapıyoruz
    Font fnt;// kullanacağımız fontu yaratıyoruz.
    Random rasgele =new Random(); // ilerde kullanmak üzere bir rasgele sayı yaratan Random yaratıyoruz
    int rndsayi=rasgele.Next(10000,99999);// rasgele sayı için en küçük ve en büyük değeri yazıyoruz.
    bmp=new Bitmap(80,45);// resmimizi(kare) px olarak, enini ve boyunu tanımlıyoruz.
    gfx=Graphics.FromImage(bmp);// resmimizi grafik objenin içinde yerleştiriyoruz
    fnt=new Font("Times New Roman",12);// fontun ismini ve büyüklüğünü veriyoruz
    gfx.DrawString(rndsayi.ToString(), fnt, Brushes.Yellow, 15, 15);// rasgele sayıyı çiziyoruz
    int rndbirincihat1 = rasgele.Next(0, 45);//birinci hattın y koordinatlarını veriyoruz
 
    int rndbirincihat2 = rasgele.Next(0, 45);//birinci hattın y koordinatlarını veriyoruz 
    gfx.DrawLine(Pens.Yellow, 0, rndbirincihat1, 80, rndbirincihat2);// birinci hattı çiziyoruz 
    int rndikincihat1 = rasgele.Next(0, 45);//ikinci hattın y koordinatlarını veriyoruz 
    int rndikincihat2 = rasgele.Next(0, 45);//ikinci hattın y koordinatlarını veriyoruz
 
    //dikkatinizi çekti ise biz hep y koordinatı tanımladık ya x koordinatı ne olacak?
    //x koordinatı karemizin başlangıç ve bitiş koordinatlarının kendisidir 0 ve 80
 
    gfx.DrawLine(Pens.Yellow, 0, rndikincihat1, 80, rndikincihat2);//ikinci hattı çiziyoruz

    int i; //bir sayı değişkenini tanımlıyoruz 
    for(i = 0; i <= 50; i++)// bu işlemi 50 defa tekrarlayacaktır
    { 
        int rndX = rasgele.Next(0, 80);//rasgele x koordinatı veriyoruz
        int rndY = rasgele.Next(0, 45);//rasgele y koordinatı veriyoruz
        bmp.SetPixel(rndX, rndY, Color.White); // noktalarımızı çiziyoruz
     }

    bmp.Save(Response.OutputStream, ImageFormat.Gif); //resim sayfada görünsün diye outputstream kullanıyoruz ve encode parametrelerini veriyoruz
}
Benim anlatacaklarım bu kadar, umarım az da olsa yardımcı olabildim.
Not: yabancı olduğum için Türkçemin kusurunu bağışlayın lütfen :)

Muhanad YOUNIS
[email protected]

*Buradaki bilgiler eğitim amaçlı olup, başka yerlerde yazarın ismini vererek kullanılabilir. 

Kaynaklar :

http://msdn.microsoft.com
http://www.4guysfromrolla.com/
http://www.devasp.net/
Makale:
GDI+ ve Asp.Net C#, Visual C# ve .NET Muhanad YOUNIS
  • Yazılan Yorumlar
  • Yorum Yaz
AĞU
26
2005
Bu konu hakkında makale yazdığın için gerçekten çok teşekkür ederim. Seninde makalenin başında sözettiğin gibi ben bu konunun varlığını bile unutmuşum... :-
TEM
27
2005
arka planı beyaz nasıl yapabiliriz. Yani arka plan hep siyah mı cıkıyor.
Sayfalar : 1 
Yorum yazabilmek için üye girişi yapmalısınız. Üye girişi için tıklayın.
Üye değilseniz Üyel Ol linkine tıklayarak üyeliğinizi hemen başlatabilirisniz.
 
  • Bu Konuda Son 10
  • Eklenen Son 10
  • Bu Konuda Geçmiş 10
Bu Konuda Yazılmış Yazılmış 10 Makale Yükleniyor
Son Eklenen 10 Makale Yükleniyor
Bu Konuda Yazılmış Geçmiş Makaleler Yükleniyor