python图像(.jpeg)到十六进制代码

时间:2014-07-22 13:53:47

标签: python printing hex

我使用热敏打印机操作,此打印机能够打印图像,但需要以十六进制格式获取数据。为此,我需要有一个python函数来读取图像并返回一个包含十六进制格式的图像数据的值。 我目前使用这种格式将十六进制格式发送到打印机:

content = b"\x1B\x4E"

使用Python2.7这是最简单的方法吗? 一切顺利;

2 个答案:

答案 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部分,但这会使其成为您需要的格式