我正在使用Custom s'print DPT100-S热敏打印机制作收据打印应用程序。
能够在一行中使用384像素打印图形。必须使用48个字节(48x8 = 384)将此数据传递给打印机。因此,每个'bit'代表一个要打印的点(白色为'0',黑色为'1'。
因此,我需要创建一个程序来读取在Windows Paint(或任何其他程序)中生成的单色BMP,并使用Linux中的C程序将其转换为此位格式。
请指导我。
答案 0 :(得分: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 :(得分:2)
看看半色调。
快速Google会为您提供参考资料和Java applet,例如:http://www.markschulze.net/halftone/index.html
如果您不必创建自己的程序,并且乐于使用现成的软件,请尝试ImageMagick的convert
命令:http://www.imagemagick.org/Usage/quantize/#halftone
e.g。
convert myfile.jpg -colorspace Gray -ordered-dither h4x4a printable-file.bmp
答案 2 :(得分:2)
This链接有一个名为LCD助手的软件,可以根据需要执行相同的操作。您必须使用paint将任何图像转换为位图,然后将该bmp图像导入软件。您可以选择输出为384 X xyz。你得到HEX的输出像素。