Convert image into hexadecimal format with Python

10,013

You can use the binascii package for this. It will convert it in to a hex string.

import binascii
filename = 'test.png'
with open(filename, 'rb') as f:
    content = f.read()
print(binascii.hexlify(content))
Share:
10,013
Onur Degerli
Author by

Onur Degerli

Updated on June 05, 2022

Comments

  • Onur Degerli
    Onur Degerli almost 2 years

    I have a jpg file under the tmp folder.

    upload_path = /tmp/resized-test.jpg
    

    I have been using the codes below:

    Method 1

    with open(upload_path, "rb") as image_file:
        encoded_string = base64.b64encode(image_file.read())
    

    Method 2

    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
    imgToHex(upload_path)
    

    But none of them are working as I want.

  • Onur Degerli
    Onur Degerli over 6 years
    Thanks for your solution @pansul-bhatt but when I try to set it into reponse, I get this error: "raise TypeError(repr(o) + \" is not JSON serializable\")" My return code is like this: return { 'header': { 'Content-Type': content_type }, 'body': encoded_string }
  • Onur Degerli
    Onur Degerli over 6 years
    Actually, I am trying to apply in AWS Lambda. When I try to give the response like above, I get this error.