C#

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 !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ğırmanmız, yani kodları yazdığımız sayfanın başına

using System.Drawing;

kod satırını eklememiz gerek.
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. 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. 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);

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);

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.
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;

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.

Skorumuz:
Oy Vermek İçin Tıklayın
[Toplam: 0 Ortalama: 0]

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu