如何从字符串创建图像?

时间:2019-03-18 16:07:48

标签: python image python-imaging-library

我正在尝试从字符串创建图像文件,但是到目前为止,我还没有遇到任何运气。使用ImageDraw,我可以在图像文件上打印字符串,但这不是我想要的。我只想从一组字符生成一个简单的图像文件。

编辑:设想一个假设的情况,即创建图片的ASCII艺术图文本,但不是创建文本文件的输出,而是生成图像文件。我的代码包含多个循环,使用Matplotlib将影响我的代码的性能。

2 个答案:

答案 0 :(得分:2)

您可以尝试使用matplotlib:

import matplotlib.pyplot as plt
plt.text(0,0,mystring)
plt.savefig("mysentence.png", dpi=100)

答案 1 :(得分:0)

您可以使用PIL.Image.frombytes method

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)