2010-10-05 45 views
1

是否有人知道适用于以.TMB格式编写图像的库?用于创建.TMB图像的库?

.TMB格式适用于从Epson热敏收据打印机打印徽标。

+0

你有任何示例文件?这可能是一个简单的位图。 – 2010-10-05 16:54:48

+0

我想你是对的...请看我的回答 – 2010-10-05 20:43:23

+0

非常好。耻辱我没有把它作为答案;) – 2010-10-06 13:00:07

回答

2

大约一个小时左右的看着二进制数据,我来到了以下结论:

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 Programming Guide的ASCII命令打印光栅图像是:

GS V 0

嗯..有趣!

一时心血来潮,我决定把5P其十进制等效,它们分别是5380,我.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()