Вы можете использовать метод PIL.Image.frombytes
import PIL
my_string = b'\xf8\xff\xb0\xbc\xd8]\xba\xdf0\xbd\xdeE\xfb\xff\xd1\xf1\xff\xbf\xb4\xd9p\xad\xd9F\xae\xd7U\xf2\xff\xd6\xdf\xff\xdc\xde\xff\xd2m\xa8L\xe0\xff\xc5\xe0\xff\xe1F\x9a\\I\x9e]E\x9bTD\x9aSK\x9fa1\xadO,\xa7L3\xaeT/\xa9R.\xa8Q'
img = Image.frombytes("RGB", (5,5), my_string)
img.show()
Обратите внимание, что длина вашей строки должна равняться количеству байтов, используемых для пикселя, умноженному на ширину и высоту
В моем случае my_string
содержит RGB-изображение, которое составляет 3 байта на пиксель, а изображение имеет ширину 5 пикселей и высоту 5 пикселей.
Поэтому my_string
следуетимеют длину 75 байтов (3 * 5 * 5)