Facebook RSS Feed
 

.NET Micro Framework: Bitmap ile Yazı Yazdırmak

Grafiksel uygulamalarda yazı yazdırmak için Bitmap ve Font sınıflarını kullanıyoruz. Mikrodenetleyicilerin kapasiteli sınırlı olduğu için, yalnızca uygulamamızda kullanacağımız yazı tipleri seçilip kaynak dosyasına eklenir. Bu nedenle .NET Micro Framework ile yazı yazdırmak, masaüstü uygulamalarına göre farklılık gösterir.

Çalışma Mantığı

Önceki Bitmap örneklerimizde olduğu gibi, yazı yazdırmak için cihazımızın ekran çözünürlüğünde bir Bitmap oluşturup, üzerine yazı ekleyeceğiz. Hafızada oluşan çizim tamamlandığında ise görüntüyü ekrana yansıtacağız.

Yazı Tipleri

.NET Micro Framework, mikrodenetleyicinin yükünü azaltmak için önceden render edilmiş, kendine özel bir yazı tipi formatı kullanır. ".tinyfnt" uzantılı bu yazı tipi, her karakterin Bitmap çizimini içerir. Bu nedenle, .tinyfnt uzantılı bir yazı tipi tek boyutta ve özelliktedir (Kalınlık, eğim...) .NET MF SDK kurulumuyla "NinaB" ve "small" adında iki temel yazı tipi gelir. Bunlara "C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Fonts" konumundan erişebilirsiniz.

Uygulamamıza başlarken öncelikle Visual Studio 2010 üzerinde bir Micro Framework Console Application oluşturalım. Kaynaklarımız arasına ".tinyfnt" uzantılı yazı tiplerini eklemek için Visual Studio Solution Explorer'dan Resources.resx dosyasını açalım ve pencerenin sol üst tarafından "Files" seçimini yapalım:

-

Add Resource > Add Existing File seçeneğinden "C:\Program Files (x86)\Microsoft .NET Micro Framework\v4.1\Fonts" konumunda bulunan iki yazı tipi dosyasını kaynak dosyamıza ekleyelim:

-

Resources.resx penceresinde eklediğimiz yazı tiplerini göreceksiniz. Bu pencereyi kaydedip kapatabilirsiniz.

-

Uygulama Kodları

Bitmap ve Font sınıflarına ulaşabilmek için öncelikle proje referansları arasına Microsoft.SPOT.Graphics.dll'i ekleyelim. Program.cs'e de "Microsoft.SPOT.Presentation" ve "Microsoft.SPOT.Presentation.Media" namespace'lerini ekleyelim.

- Uygulamamızda yapacağımız işlem, NinaB yazı tipi ile "Merhaba Dünya" başlığı yazdırmak. Hemen altına small yazı tipini kullanarak bir satır daha ekleyeceğiz. Bu iki satırı DrawText metodunu kullanarak çizdireceğiz. DrawText metodu, tek satırlık yazılar için tercih edilir.

Birden çok satır yazı çizdirmek istiyorsak, DrawTextInRect metodunu kullanmamız gerekiyor. Bu metodda çizdirilecek yazı, belirlenen dikdörtgen alanın içerisinde olacaktır. "Lorem ipsum" ile başlayan paragraf DrawTextInRect metoduyla yazılmıştır. Paragrafın hizzalaması, satır atlaması ve harflerin saydamlığı gibi özellikleri ayarlanabilir.

Yukarıda gösterilen görünümü almak için Program.cs dosyasına aşağıdaki kodları ekleyelim:

using System;
using System.Threading;
using Microsoft.SPOT;
using Microsoft.SPOT.Presentation.Media;
 
namespace MFGraphics3
{
    public class Program
    {
        public static void Main()
        {
            //Adım 1: Ekran çözünürlüğünde bir Bitmap oluşturalım:
            Bitmap bmp = new Bitmap(320, 240);
 
            //Adım 2: Eklediğimiz fontları tanıtalım:
            Font font1 = Resources.GetFont(Resources.FontResources.NinaB); //NinaB yazı tipi
            Font font2 = Resources.GetFont(Resources.FontResources.small); //small yazı tipi
 
            //Adım 3: Bitmap üzerine yazı yazdıralım:
            bmp.DrawText("Merhaba Dunya!"//Çizdirilecek yazı
                font1, //NinaB yazı tipi
                ColorUtility.ColorFromRGB(255, 255, 255), //Beyaz renk
                10, 10); //Sol üst noktanın X ve Y koordinatları
 
            bmp.DrawText(".NET Micro Framework ile yazi yazdirmak..."//Çizdirilecek yazı
                font2, //small yazı tipi
                ColorUtility.ColorFromRGB(0, 255, 0), //Yeşil renk
                10, 30); //Sol üst köşenin X ve Y koordinatları
 
            bmp.DrawTextInRect("Lorem ipsum dolor sit amet, consectetur adipisicing " +
                "elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
                "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi " +
                "ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit " +
                "in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur " +
                "sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt " +
                "mollit anim id est laborum."//Çizdirilecek yazı
                10, 50, //Sol üst köşenin X ve Y koordinatları
                300, 150, //Yazı alanının genişlik ve yüksekliği
                Bitmap.DT_AlignmentLeft | Bitmap.DT_WordWrap | Bitmap.OpacityOpaque, //Özellikler
                ColorUtility.ColorFromRGB(0, 255, 255), //Renk
                font2); //small yazı tipi
 
            //Adım 4: Bitmap'i ekranda gösterelim:
            bmp.Flush();
 
            Thread.Sleep(Timeout.Infinite); //Main Thread'i uyutalım
        }
    }
}

F5 ile uygulamayı simulatör üzerinde çalıştırdığımızda, eklediğimiz yazıların ekranda göründüğünü göreceksiniz. Kodları fiziksel cihaz üzerinde çalıştırmak için, o cihazın donanım referanslarını ekleyip ekran çözünürlüğünü ayarlamanız gerekmektedir.

Visual Studio 2010 için kaynak kodları buradan indirebilirsiniz.




 
Hoşgeldiniz!
Son güncelleme: 25.12.2016
-
Yeni Teknik Yazılar
Latte Panda İncelemesi
Turta IoT HAT İncelemesi
USB Gamepad Kullanımı
GPIO Kullanımı
VEML6075 UV Sensör Kullan...
-
İlgili Gruplar
.NET MF ve Gadgeteer FB Grubu
İst. IoT & Wearables Meet-up
-
 

This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.Copyright © 1999 - 2017, Umut Erkal. Bu materyal, "Creative Commons Public Licence" ile sunulmuştur.
Kaynak göstererek ve ücretsiz olarak, aynı şartlar altında paylaşabilir ve kullanabilirsiniz. | Kullanım Sözleşmesi