ÜYE GİRİŞİ  
Kullanıcı adı :
Parola :
 
  Üye Ol!  
 
 
ANASAYFA HABERLER ASP ASP.NET PHP C/C++ C# JAVA ARAMA İLETİŞİM

ASP.NET
  Expression Web ile Site Yapimi
  Web Server Control Yazmak - 2
  Web Server Control Yazmak - 1
  Sql Cache Dependency
  Web Kontrollerini Etkin Kullanmak
  Xslt Kullanımı
  Bir Web Sayfasının Anatomisi
  Client Script Callback
  Login Kontrollerinin Kullanımı

ASP
  ASP Nesneleri
  29 Soruda ASP
  Matematiksel Uygulamalar
  Select Case Yapısı 2
  Fonksiyon(Function) Kullanımı
  IF-ELSE...
  GET Yöntemi ile İşlemler
  Asp de Tarih ve Saat fonksiyonları
  While-wend döngüsü

C Sharp (C#)
  C#'da klasör işlemleri
  C# ile diziyi tersine çevirme
  Çok Kullanılan Kontroller-1
  C# ile Kronometre Uygulaması
  Overloaded Metotların Gücü
  C# ile XMLQuery Örneği
  Rastgele Kod Üretimi
  Kontroller ile Çalışma
  Düzenli İfadeler Nedir?

DUYURULAR

F# Microsoft dil teknolojisinin en yeni üyesi.Common Lisp-Slime-Emacs tarzında etkileşimli,kıvrak,sonuçların anında görülebildiği ve yüksek performanslı bir betik dil olarak özetleyebiliriz bu yeni dili. devamı >>


Türk Telekom'dan yapılan yazılı açıklamada, Telekomünikasyon Kurumu'nun onayladığı yeni tariflerin, internet servis sağlayıcı şirketlerin maliyetlerini önemli oranlarda düşüreceği aktarıldı. devamı >>


Dinamik Olarak Resim Oluşturmak | Asundinay.Com
Asp.Net İçin Eklenmiş Makale
 Makale Adı  :  Dinamik Olarak Resim Oluşturmak
 Yayın Tarihi :  12.08.2007 18:00:57 Ekleyen :  Kazım Aydın Okunma : 203

Web uygulamalarında dinamik olarak resim oluşturma ihtiyacı çok sık doğmaktadır. Klasik ASP uygulamalarında bunu yapmak ya 3. parti şirketlerin bileşenlerini kullanarak ya da çok zahmetli kodlar yazarak mümkün olmaktaydı. ASP.NET ile bunu zahmetsizce yapmak mümkün olmuştur. .NET Framework, ASP.NET uygulamalarında dinamik olarak resim oluşturmak için gelişmiş birçok sınıf ve metot içerir.

Bu konuyu daha iyi kavrayabilmek için beraberce, bir gerçek dünya uygulamasında kullanılabilecek, küçük bir uygulama geliştireceğiz. Birçok web sitesinde çeşitli anketler görmüşsünüzdür. Bizim örneğimizde bir anket uygulaması olacak.

Anket sonuçlarını basit bir XML dosyasında tutacağız. XML dosyamızın içeriği şu şekilde:

Anket.xml

<?xml version="1.0" encoding="utf-8"?>
<Hits>
<Hit>70</Hit>
<Hit>25</Hit>
<Hit>15</Hit>
<Hit>25</Hit>
<Hit>10</Hit>
</Hits>

private void OyVer(int Cevap)
{
string strFile = Server.MapPath("Anket.xml");
string strNode = "/Hits/Hit[" + Cevap.ToString() + "]";

XmlDocument xmlAnket = new XmlDocument();
xmlAnket.Load(strFile);

int nOySayisi = Convert.ToInt32(xmlAnket.SelectSingleNode(strNode).InnerText) + 1;
xmlAnket.SelectSingleNode(strNode).InnerText = nOySayisi.ToString();

xmlAnket.Save(Server.MapPath("Anket.xml"));
}



Kullanıcı bu sayfadaki "Anket Sonuçlarını Gör" butonuna tıkladığında ise anketsonuc.aspx sayfamız açılıyor. Bu sayfa yüklenirken Anket.xml dosyasından anket sonuçlarını okuyor ve grafik çiziminde bize yardımcı olması için bu değerlerin yüzdeliklerini hesaplıyor.

private void Page_Load(object sender, System.EventArgs e)
{
// Anket sonuçları öğreniliyor...
string strFile = Server.MapPath("Anket.xml");

XmlDocument xmlAnket = new XmlDocument();
xmlAnket.Load(strFile);

int nToplamOy = 0;

for(int i=0; i<5; ++i)
{
Sonuc[i] = Convert.ToInt32(xmlAnket.SelectSingleNode("/Hits/Hit["+ Convert.ToString(i+1) +"]").InnerText);
nToplamOy += Sonuc[i];
}

// Sonuçların yüzdelik değerlerini hesaplayıp SonucYuzde[] dizisine aktarıyoruz...
// Bu değerleri grafik çiziminde kullanacağız.
for(int i=0; i<5; ++i)
SonucYuzde[i] = Sonuc[i] * 100 / nToplamOy;

// Sonuçlara göre grafik oluşturuluyor...
GrafikOlustur();
}

Bu sayfamızda bazı global değişken ve dizi tanımları yer alıyor.

// Anket sonuçlarını depolamak için 5 elemanlı bir dizi oluşturuluyor...
private int[] Sonuc = new int[5];

// Anket sonuçlarının yüzdelik oranlarını depolamak için 5 elemanlı bir dizi oluşturuyoruz...
private int[] SonucYuzde = new int[5];

// Anket cevaplarının kısaltmalarını bir diziye ekliyoruz...
private string[] Cevaplar = new string[5] {"FB","BJK","GS","TS","DİĞ"};

// çizilecek dikey çubukların genişliği...
private int Bar_W = 30;

Şimdi gelelim bizi asıl ilgilendiren kısma. Page_Load metodunun en sonuda çağrılan GrafikOlustur() metodu, anket sonuçlarını grafik olarak göstermek için gerekli işlemleri yapıyor. Kod içerisinde açıklamalar mevcut olduğundan, ayrıca bir açıklama yapmayacağım.

private void GrafikOlustur()
{
// imgGrafik nesnemizin boyutları alınıyor...
int imgAnket_W = Convert.ToInt32(imgAnket.Width.Value);
int imgAnket_H = Convert.ToInt32(imgAnket.Height.Value);

// Bitmap nesnesi oluşturuluyor...
Bitmap bmpAnket = new Bitmap(imgAnket_W, imgAnket_H);

// Graphics nesnesi oluşturuluyor...
Graphics grpAnket = Graphics.FromImage(bmpAnket);

// 2 farklı boyutta Font nesnesi oluşturuluyor...
Font fntKucukFont = new Font("Tahoma", 8);
Font fntBuyukFont = new Font("Tahoma", 12);

// Tuvalimizin arka planı sarı renkle boyanıyor...
grpAnket.FillRectangle(new SolidBrush(Color.Yellow), 0, 0, imgAnket_W, imgAnket_H);

// Tuvalimize (grpGrafik) 2 tane metin yazdırıyoruz...
grpAnket.DrawString("www.verivizyon.com", fntBuyukFont, new SolidBrush(Color.Red), 5, 10);
grpAnket.DrawString("Hangi futbol takımını tutuyorsunuz?", fntBuyukFont, new SolidBrush(Color.Navy), 5, 30);

// Anket sonuçlarına göre dikey dikdörtgenler çizdiriyoruz...
for(int i=0,sol=50; i<5; ++i,sol+=50)
{
grpAnket.FillRectangle(new SolidBrush(Color.RoyalBlue),sol,(imgAnket_H-SonucYuzde[i]),Bar_W,SonucYuzde[i]);

grpAnket.DrawString(Sonuc[i].ToString() + " oy", fntKucukFont, new SolidBrush(Color.Red), sol, (imgAnket_H-SonucYuzde[i]-15));

grpAnket.DrawString(Cevaplar[i], fntBuyukFont, new SolidBrush(Color.Blue), sol, (imgAnket_H-SonucYuzde[i]-35));
}

// Oluşturduğumuz grafiği Image nesnesinde gösteriyoruz...
bmpAnket.Save(Server.MapPath("grafik.jpg"), ImageFormat.Jpeg);
imgAnket.ImageUrl = Server.MapPath("grafik.jpg");

// Grafiği bir dosyaya kaydetmeden ve bir Image nesnesi kullanmadan göstermek istersek aşağıdaki kodu kullanabiliriz...
// Response.ContentType = "image/jpeg";
// bmpAnket.Save( Response.OutputStream, ImageFormat.Jpeg);

// Oluşturduğumuz nesnelerimizi Garbage Collection’ın çalışmasını beklemeden temizliyoruz...
grpAnket.Dispose();
bmpAnket.Dispose();
}

Bu metot çalışmasını tamamlandığında aşağıdaki şekilde bir grafik oluşturmuş olacak.


Koddaki bazı kısımlar ilk bakışta biraz karmaşık gelebilir. Ama kodu biraz inceleyecek olursanız aslında hiç de karmaşık olmadığını göreceksiniz. örnek uygulamayı indirmek için : tıklayın.

Umarım bu küçük uygulama ASP.NET’ de dinamik olarak nasıl resim oluşturulacağı konusunda size yardımcı olmuştur.

Herkese iyi çalışmalar dilerim…

Uygulamamız iki adet sayfadan oluşuyor.
- anket.aspx
- anketsonuc.aspx
anket.aspx sayfasında kullanıcı ankete oy veriyor. Verdiği oy Anket.xml dosyasına kaydediliyor.


 

Kaynak : csharpnedir.com


 

Asp.Net İçin Eklenmiş Tüm Makaleler
Asp.Net İçin En Son Eklenen 5 Makale
 Makale Adı  :  Expression Web ile Site Yapimi
 Yayın Tarihi :  12.08.2007 19:57:26 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Web Server Control Yazmak - 2
 Yayın Tarihi :  12.08.2007 19:52:45 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Web Server Control Yazmak - 1
 Yayın Tarihi :  12.08.2007 19:48:59 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Sql Cache Dependency
 Yayın Tarihi :  12.08.2007 18:36:18 Ekleyen :  Kazım Aydın Makaleyi Oku  
 Makale Adı  :  Web Kontrollerini Etkin Kullanmak
 Yayın Tarihi :  12.08.2007 18:34:25 Ekleyen :  Kazım Aydın Makaleyi Oku  

C/C++
  C ögreniyorum -8-
  C ögreniyorum -7-
  C ögreniyorum -6-
  C ögreniyorum -5-
  C ögreniyorum -4-
  C ögreniyorum -3-
  C ögreniyorum -2-
  C ögreniyorum -1-
  İlk C++ Programımız

JAVA
  Java ile Histogram Eşitleme
  JAVA İçinde Thread Kullanımı
  Serialization İşlemleri 2
  Serialization İşlemleri
  İlk Bakışta JSP
  Servletler ile Web Sayfaları
  Java ile Grafik Çizim
  Java, MySql Bağlantısı
  JBuilder ile Database

PHP
  php dersleri -1-
  php/access ile silme işlemi
  php ile access'e bağlanma - 2
  php ile access'e bağlanma - 1
  Döngü ve Diziler - BÖLÜM 5
  Döngü ve Diziler - BÖLÜM 4
  Döngü ve Diziler - BÖLÜM 3
  Döngü ve Diziler - BÖLÜM 2
  Döngü ve Diziler - BÖLÜM 1

İSTATİSTİKLER
  Toplam ziyaret :  24684
  Toplam üye sayısı :  1077
  Asp makale sayısı :  20
  Asp.Net makale sayısı :  54
  Php makale sayısı :  26
  C/C++ makale sayısı :  51
  C# makale sayısı :  29
  Java makale sayısı :  33
  Toplam makale saıysı :  213
Copyright asundinay® 2007 Her Hakki Saklidir
Tasarim & Programlama asundinay®