我使用热敏打印机操作,此打印机能够打印图像,但需要以十六进制格式获取数据。为此,我需要有一个python函数来读取图像并返回一个包含十六进制格式的图像数据的值。 我目前使用这种格式将十六进制格式发送到打印机:
content = b"\x1B\x4E"
使用Python2.7这是最简单的方法吗? 一切顺利;
答案 0 :(得分:0)
我真的不知道“十六进制格式”是什么意思,但是如果它需要将整个文件作为一个字节序列来执行:
with open("image.jpeg", "rb") as fp:
img = fp.read()
如果您的打印机需要其他格式的图像(例如每个像素的8位值),那么尝试使用pillow库,它具有许多图像处理功能,并处理各种输入和输出格式。 / p>
答案 1 :(得分:0)
这个怎么样:
with open('something.jpeg', 'rb') as f:
binValue = f.read(1)
while len(binValue) != 0:
hexVal = hex(ord(binValue))
# Do something with the hex value
binValue = f.read(1)
或者对于某个函数,如下所示:
import re
def imgToHex(file):
string = ''
with open(file, 'rb') as f:
binValue = f.read(1)
while len(binValue) != 0:
hexVal = hex(ord(binValue))
string += '\\' + hexVal
binValue = f.read(1)
string = re.sub('0x', 'x', string) # Replace '0x' with 'x' for your needs
return string
注意:如果您使用re.sub
来编写位,则不一定需要执行struct.pack
部分,但这会使其成为您需要的格式