Библиотека для создания изображений .TMB? - PullRequest
1 голос
/ 05 октября 2010

Кто-нибудь знает библиотеку, подходящую для написания изображения в формате .TMB?

Формат .TMB подходит для печати логотипов с термопринтера Epson.

1 Ответ

2 голосов
/ 06 октября 2010

Примерно через час или около того просмотра двоичных данных я пришел к следующему выводу:

A * .TMB-изображение на самом деле представляет собой просто сериализованную команду ESC / POS для печати растрового изображения.

Используя следующую команду:

od -t a -v [YOUR_TMB_FILE] | head

, мы можем просматривать двоичные данные в виде символьных данных ASCII в начале файла TMB.

У меня был файл, который выглядел примерно так:

0000000  gs   v   0 nul   5 nul   P nul del del del del del del del del
0000020 del del del del del del del del del del del del del del del del
... snipped for brevity ...

В соответствии с Руководство по программированию ESC / POS *1018*, команда ASCII для печати растрового изображения:

GS V 0

Хмм .. Интересно!

По прихоти я решил преобразовать 5 и P в их десятичные эквиваленты, которые равны 53 и 80 соответственно, точные размеры моего изображения .TMB (на самом деле это 80x53)!

После этого все стало на свои места.Остальная часть файла .TMB - это просто двоичные данные изображения.

Вот одноразовый скрипт Python, который я написал для проверки своей теории:

  1 out = open('test.TMB', 'wb')
  2 
  3 width = 80
  4 height = 53
  5 
  6 NUL = chr(0)
  7 GS = chr(29)
  8 V = chr(118)
  9 ZERO = chr(48)
 10 
 11 W = chr(width)
 12 H = chr(height)
 13 
 14 out.write(GS)
 15 out.write(V)
 16 out.write(ZERO)
 17 out.write(NUL)
 18 
 19 out.write(H)
 20 out.write(NUL)
 21 out.write(W)
 22 out.write(NUL)
 23 
 24 for y in range(0, height):
 25     for x in range(0, width):
 26         out.write(chr(127))    # looks like `del` in ASCII mode
 27 
 28 out.close()
...