Makale Özeti

Bu yazıda .NET framework kullanarak dinamik resim yaratmaktan bahsedeceğim.

Makale

.Net öncesi dinamik resim oluşturabilmek için ya çok iyi bir grafik programcısı olmanız ya da hazır bir class library kullanmanız gerekirdi. Ama artık .Net’ in grafik sınıflarını kullanarak rahatça dinamik resimler oluşturabilirsiniz. Örneğin sitenize giren bir ziyaretçinin adını bir resim olarak gösterebilirsiniz. Yada rahatlıkla paint benzeri bir uygulama yazıp jpg, gif vb. formatlarda resim kaydetme işlemini bir satırda halledebilirsiniz!

Öncelikle kodu indirmenizi tavsiye ederim. Koda bakarak çok daha hızlı ilerleyebilirsiniz.

Kodu indirmek için buraya basın. Programın çalışan halinin görüntüleri en aşağıda.

Yapmanız gerekenler :

  • System.Drawing.Bitmap sınıfından bir nesne oluşturmak : Bütün çizimlerinizi bu nesne üzerinde gerçekleştirebilirsiniz.
  • System.Drawing.Graphics sınıfından bir nesne yaratmak : Bitmap nesnesine çizim yapabilmek için kullanabilirsiniz.
  • Bitmap nesnesinin Save metodunu kullanmak : Bitmap nesnesini kaydetmek için kullanabilirsiniz. Kayıt formatını değiştirmek için “format“ parametresini System.Drawing.ImageFormat sınıfındaki değerlerden birini (jpg, gif, bmp vb.) verebilirsiniz.

Ekteki örnekte System.Drawing ve System.Drawing.Imaging sınıfları kullanılarak kullanıcının seçtiği font, yazı rengi, ve arka plan rengini kullanarak kullanıcının yazdığı yazı bir bitmap haline getirilip form üzerinde gösteriliyor ve jpg, bmp, yada gif olarak kaydedilebiliyor. Ancak burada çok fazla diyalog kutuları kullandım, bunlarla ilgili diğer bilgileri www.yazgelistir.com daki diğer makalelerden bulabilirsiniz.

Örnekteki önemli kodların açıklamasını aşağıda bulabilirsiniz :

  • Ortak nesneler :

    Private bmp As New Bitmap(200, 50) ‘Resmi oluşturduğumuz Bitmap.

    Private yazi_fontu As New Font("Tahoma", 20) ‘Resimdeki yazı için font.

    Private yazi_rengi As Color = Color.White ‘Resimdeki yazı için renk.

    Private arka_plan_rengi As Color = Color.Black ‘Resmin arka planı için renk

  • Dinamik resim oluşturma :

        Dim grp As Graphics = Graphics.FromImage(bmp) ‘ Çizim yapacağımız grafik nesnesi. Çizimleri “bmp” nesnesi üzerine yapıyor.

        Dim br_yazi As New SolidBrush(yazi_rengi) ‘ Yazı rengi için fırça.

        Dim br_arka_plan As New SolidBrush(arka_plan_rengi) ‘ Arka plan rengi için fırça

        grp.FillRectangle(br_arka_plan, 0, 0, 200, 50) ‘ Arka plan boyanıyor.

        grp.DrawString(txt_yazi.Text, yazi_fontu, br_yazi, 0, 0) ‘ Yazı “bmp” nesnesine çiziliyor.

  • Resmi gösterme :

pct_yazi.Image = bmp ‘ Oluşturulan resim formdaki picture kontrolüne atanıyor.

  • Resmi kaydetme :

        If sfd.ShowDialog() = DialogResult.OK Then ‘ Tamam tuşuna tıklandığının kontrolü

            Select Case sfd.FileName.Substring(sfd.FileName.Length - 3, 3) ‘ Uzantı kontrol ediliyor.

             ;    Case "gif" : bmp.Save(sfd.FileName, ImageFormat.Gif) ‘ Gif olarak kaydediliyor.

             ;    Case "jpg" : bmp.Save(sfd.FileName, ImageFormat.Jpeg) ‘ Bitmap olarak kaydediliyor.

             ;    Case Else : bmp.Save(sfd.FileName, ImageFormat.Bmp) ‘ Jpeg olarak kaydediliyor.

            End Select

        End If 

Diğer bölümler ağarlıklı olarak diyalog kutularının kullanımı ile ilgili.

Bir başka makalede görüşmek üzere. Bir problemle karşılaşırsanız bana mail yollayabilirsiniz.

Ender ÖZKANAL

ender.ozkanal@bilgeadam.com