2011-11-18 219 views
3

我使用Custom s'print DPT100-S热敏打印机来制作收据打印应用程序。如何将单色图像转换为热敏打印机的按位格式

它能够在一行中使用384个像素打印图形。这些数据必须使用48个字节(48x8 = 384)传送到打印机。所以,每个“位”代表要打印的一个点(白色位为'0',黑色位为'1')。

因此,我需要创建一个程序,它将读取Windows Paint(或任何其他程序)中生成的单色BMP,并使用Linux中的C程序将其转换为此位格式。

请指导我。

+3

BMP不是一个非常复杂的格式。维基百科有一个很好的[描述](http://en.wikipedia.org/wiki/BMP_file_format)。编码BMP解码器或查找现有的解码器。 –

回答

3

伪代码:

Read BMP 
For each row in BMP 
    For each group of 8 pixels in row 
     output_byte = 0 
     For each pixel in current group of 8 
      output_byte <<= 1    // shift output_byte left by one bit 
      output_byte |= (pixel != 0) // set rightmost bit in output_byte 
              // according to input pixel value 
     Save output_byte in bitmap 
1

This链接有一个名为LCD助手的软件,它可以根据需要进行相同的操作。您必须使用绘图将任何图像转换为位图,然后将该bmp图像导入到软件中。您可以选择的输出是384 X xyz。你得到十六进制输出像素。

相关问题