Önceki yazımızda metin işlemlerini öğrendiğimiz CSN-A2 termal yazıcımıza resim bastırmayı göreceğiz.

DC2 * r n [d1…dn]
[Name] Print bitmap (resim yazdırır)
[Format]
ASCII: DC2 * r n [d1 … dn]
Decimal: 18 42 r n [d1 … dn]
Hexadecimal: 12 2A r n [d1 … dn]

r: Yazdırılacak resmin yükseklik bilgisidir.
n: Yazdırılacak resmin genişlik bilgisidir.
d: yazdırılacak resmin görüntü bilgileridir.

     Yazıcımız sadece siyah beyaz yazabildiği için yazdırılacak resmimiz sadece tek renkli bit eşlem olabilir. Paint ya da benzeri basit bir programla bile resimlerimizi tek renkli bit eşleme kolayca çevirebiliriz. Yazdırılacak resmimizin genişliği 384 pixeli geçemez. Resmimizin boyutlandırma ve format değiştirme işlemi bittikten sonra pixel bilgilerini alacağız. Bunun için LCDAssistant programını ya da benzer bir programı kullanabileceğiniz gibi benzer bir programı kendiniz de kolayca yazabilirsiniz. Resimdeki pixellerin bilgilerini nasıl değerlendireceğimiz hakkında daha detaylı bilgi verelim. Aşağıdaki resimde gördüğünüz gibi, resmi sol baştan itibaren sekizer bitlik parçalara ayırıyoruz. Eğer, o bite denk gelen pixel beyaz ise sıfır, siyah ise 1 olarak değerlendiriyoruz. Oluşan binary kodu hexadedimal’ e çeviriyoruz. Her sekiz bit için bu işlemi tekrar ediyoruz. İsterseniz her pixel için ayrı hex kodu oluşturabilirsiniz ve yazıcıya teker teker gönderebilirsiniz, ancak bu yazdırma işlemini çok uzatacağı ve yazıcıya çok fazla enerji harcatacağı gibi bellekte de çok fazla yer kaplar.

pixel
Yukarıdaki resmi bastırmak istediğimiz resim olarak var sayarsak; ilk bilgimiz “10110011” ve HEX karşılığı “B3” olacak. İkinci için “00110100” ve HEX karşılığı “34” olacak. Üçüncü için “10010111” ve HEX karşılığı 97 olacak. Bu şekilde tüm bilgileri elde edip yükseklik ve genişlik bilgisini gönderdiğimiz yazıcımıza gönderirsek resmimizi kolaylıkla bastırabiliriz. Arduino ile yapılmış örnek uygulamanın kodları aşağıdadır.

     Eğer resim pixel bilgilerini almak için LCDAssistant kullanacaksanız, program ayarını resimdeki gibi yapabilirsiniz.

LCDAssistant_screenshot

Bir sonraki yazıda görüşmek üzere, hoşça kalın!