C# Resim Üzerine Yazı Yazma

Merhabalar, C# derslerimize kaldığımız yerden devam ediyoruz. Bu dersimizde resim üzerine yazı yazmayı anlatacağım. Hadi başlayalım !
Table of Contents
Aslında daha önce form üzerine yazı yazmayı anlatmıştım, o yazıma buraya tıklayarak ulaşabilirsiniz. Bu yazıda ise neredeyse aynı işlemleri yapacak fakat form yerine resim üzerine yazı yazacağız.C#’ta resim işlemleri yapabilmek için grafikleri kullanmak gerekiyor ve grafik işlemlerini yapabilmek içinde System.Drawing kütüphanesini sayfaya çağırmamız, yani kodları yazdığımız sayfanın başına
using System.Drawing;
kod satırını eklememiz gerek.
Bitmap Nesnesi Oluşturma
Ayrıca resim işlemlerini de Bitmap adı verilen resim kodlaması sistemini kullanarak yapabiliyoruz. Elbette Bitmap sadece C#’a özgü bişey değil. Bitmap, bi resim kodlaması ve C#’ta da bunun için bir sınıf var ve bunun adı da Bitmap. Bitmap sınıfını kullanabilmek için bu sınıfın yeni bir nesnesini türetmemiz gerek ve constructor metoda parametre olarak resim dosyasının yolunu yazmamız gerek. Örneğin resim dosyasının yolunun c:/users/kullanici/desktop/resim.jpg olduğunu varsayarsak, yeni bir Bitmap nesnesi türetelim;
Bitmap bitmap = new Bitmap("c:/users/kullanici/desktop/resim.jpg");
Bitmap nesnesi oluşturduk ve artık resimlerle ilgili işlemler yapabiliriz. Fakat biz resim üzerine yazı yazacağız ve bunun içinde grafikleri kullanmalıyız dedik. Fakat henüz grafiklerle alakalı herhangi birşey yapmadık.
Graphics Nesnesi Oluşturma
Grafik işlemlerinide Graphics sınıfını kullanarak yapabiliyoruz. Bu sınıfında yeni bir nesnesini türetmemiz gerek fakat bu sınıfın new anahtar kelimesi ile yeni bir nesnesi türetilmiyor. Onun yerine yapmak istediğiniz işleme göre statik metodlar ile nesne türetme işlemi yapılıyor. Biz resim işlemi yapacağımız için Graphics nesnesini resim ile başlatacağız. Bunu da Graphics sınıfı altında bulunan FromImage metodu ile yapacağız. Bu fonksiyon parametre olarak Bitmap nesnesi istiyor, ki bizde az önce Bitmap nesnesi oluşturmuştuk ve bu nesnede masaüstünde bulunan resim.jpg dosyasını tutuyordu. Hemen yeni bir Graphics nesnesi türetelim;
Graphics grafik = Graphics.FromImage(bitmap);
Resim üzerine yazı yazmak için tıpkı formda olduğu için Graphics nesnesinin DrawString() metodunu kullanacağız. Bu metod string tipte yazılacak metin, yazı tipini ayarlamak için font nesnesi, yazı yazmak için SolidBrush nesnesi, integer tipinde x noktası ve integer tipinde y noktası olmak üzere 4 parametre istiyor. x ve y noktaları yazılacak yazının koordinatını temsil edecek.
Font Nesnesi Oluşturma
Hemen şimdi gerekli hazırlıkları yapalım. Örneğin resim üzerine SoftwareSup.Net yazalım. Bunu 12 puntoluk Tahoma ile kırmızı renkte ve resmin (100, 50) noktasında yapalım. Bu dediklerimize uygun olarak Font ve SolidBrush nesnelerini türetelim. Font nesnesini new anahtar sözcüğü ile türetebiliyoruz ve constructor metoduna font adı, yazı büyüklüğü ve font tipi olmak üzere 3 parametre göndermemiz gerek.
Font font = new Font("Tahoma", 12, FontStyle.Regular);
SolidBrush Nesnesi Oluşturma
Font nesnesi tamam, şimdi gelelim SolidBrush nesnesine. SolidBrush sadece istenilen rengi istiyor. Biz kırmızı renk için hemen bi nesne türetelim;
SolidBrush brush = new SolidBrush(Color.Red);
Yazı Yazma
Eveett yazı yazmak için tüm hazırlıklar tamam, hadi artık yazımızı yazalım;
grafik.DrawString("SoftwareSup.Net", font, brush, 100, 50);
DrawString metodu void tipte yani geriye herhangi birşey döndürmemekte, o yüzden fonksiyonu herhangi bir değişkene eşitlemedik.
Resmi PictureBox Üzerinde Gösterme
E resmin üzerine yazıyı yazdık ama herhangi bi yerde göremiyoruz. Son olarak resmi form üzerinde ekli olan pictureBox1 isimli PictureBox üzerinde gösterelim;
pictureBox1.Image = bitmap;
Tüm Kodlar
Evet bu dersimizde bu kadardı, yazdığımız kodları daha toplu olması için aşağıya bırakıyorum;
Bitmap bitmap = new Bitmap("c:/users/kullanici/desktop/resim.jpg");
Graphics grafik = Graphics.FromImage(bitmap);
Font font = new Font("Tahoma", 12, FontStyle.Regular);
SolidBrush brush = new SolidBrush(Color.Red);
grafik.DrawString("SoftwareSup.Net", font, brush, 100, 50);
pictureBox1.Image = bitmap;
Tüm C# derslerimize buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.