2017-08-07 2 views
0

Ich habe eine JPG-Datei unter der tmp Ordner.Konvertieren Bild in hexadezimales Format mit Python

upload_path = /tmp/resized-test.jpg 

Ich habe die Codes unter Verwendung von unten:

Methode 1

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

Methode 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) 

Aber keiner von ihnen arbeiten, wie ich will.

Antwort

1

Sie können dafür das binascii-Paket verwenden. Es konvertiert es in eine Hex-Zeichenfolge.

import binascii 
filename = 'test.png' 
with open(filename, 'rb') as f: 
    content = f.read() 
print(binascii.hexlify(content)) 
+0

Vielen Dank für Ihre Lösung @ pansul-bhatt aber wenn ich es in reponse zu setzen versuchen, erhalte ich diese Fehlermeldung: ' "(nicht JSON serializable \ Typeerror repr (o) + \ ")" erhöhen"' Meine Rückkehr-Code ist wie folgt: return { ' 'header': { 'Content-Type': content_type }, 'body': encoded_string }' – onurdegerli

+0

Sie bekommen diese Fehler während des Drucks? –

+0

Eigentlich versuche ich mich in AWS Lambda zu bewerben. Wenn ich versuche, die Antwort wie oben zu geben, erhalte ich diesen Fehler. – onurdegerli

Verwandte Themen