Converting hex data to image

Ben Finney ben+python at benfinney.id.au
Thu Nov 14 16:29:02 EST 2013


Ben Finney <ben+python at benfinney.id.au> writes:

> To turn a byte string into a file-like object for use with PIL, extract
> the byte string as ‘image_data’, use the standard library ‘io.StringIO’
> class <URL:http://docs.python.org/3/library/io.html#io.StringIO>, then
> create a new ‘PIL.Image’ object by reading from that pseudo-file::

My apologies, I showed the wrong usage. This should work::

    import io

    import PIL

    photo_data = # … get the byte string from wherever it is …
    photo_infile = io.StringIO(photo_data)
    photo_image = PIL.Image.open(photo_infile)

That is, ‘PIL.Image.frombytes’ allows you to read the bytes from a byte
string, but requires you to also specify metadata about the image data
(format, pixel mode, size), whereas ‘PIL.Image.open’ reads the data from
a file-like object and parses all the metadata. So you usually want to
use the latter, as shown here.

-- 
 \         “People's Front To Reunite Gondwanaland: Stop the Laurasian |
  `\              Separatist Movement!” —wiredog, http://kuro5hin.org/ |
_o__)                                                                  |
Ben Finney




More information about the Python-list mailing list