python Image PIL to binary Hex

binaryfiles, hex, image, python, python-imaging-library

Solution

The `img` object needs to be saved again; write it to another `BytesIO` object:

output = io.BytesIO()
img.save(output, format='JPEG')

then get the written data with the `.getvalue()` method:

hex_data = output.getvalue()

The PIL-for-python-3 landscape is rather muddled at the moment. The Pillow fork looks to be the best, maintained version out there at the moment. It includes fixes that make saving to a `BytesIO` object work. If you run into a `io.UnsupportedOperation: fileno` exception using the above code, you have a version that was not yet fixed, in which case you'll have to resort to using a temporary file instead.

Problem

``` from PIL import Image from PIL import ImageDraw from PIL import ImageFont import urllib.request import io import binascii data = urllib.request.urlopen('http://pastebin.ca/raw/2311595').read() r_data = binascii.unhexlify(data) stream = io.BytesIO(r_data) img = Image.open(stream) draw = ImageDraw.Draw(img) font = ImageFont.truetype("arial.ttf",14) draw.text((0, 220),"This is a test11",(0,255,0),font=font) draw = ImageDraw.Draw(img) with open(img,'rb') as in_file: #error on here invalid file: hex_data = in_file.read() # Unhexlify the data. bin_data = binascii.unhexlify(bytes(hex_data)) print(bin_data) ``` Question converting hex to image and draw a text on the image, after that convert image to binary hex,but having the problem at here `with open(img,'rb') as in_file:`, how to convert img to hex?

Original source