使用Pillow(PIL)在Python中生成图像

The*_*alo 5 python pillow

我正在尝试使用Python(v2.7.2)和Pillow(v2.4.0)生成100x100的全黑图像,但结果却很奇怪。

这是我的代码

from PIL import Image
im = Image.frombytes('L', (100, 100), bytes([0] * 100 * 100))
im.show()
Run Code Online (Sandbox Code Playgroud)

这是我的结果(放大后请忽略灰色边框-它来自OS X预览版)。图像应为黑色,但不是。

我究竟做错了什么?

由枕头生成的图像; 出了点问题

cit*_*txx 5

的结果bytes([0] * 10)是字符串"[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]"。所以,你的像素颜色的ASCII码'[''0'','' ',和']'符号。

要获取零字节的字节字符串,请bytes("\x00" * 100 * 100)改用。这\x00是具有十六进制值的字节00

实际上,您甚至不需要bytes(...)致电。bytes是仅在Python 3.x中的类型。在Python 2.7.x bytes中只是的别名str

因此,最终代码应为:

from PIL import Image
im = Image.frombytes('L', (100, 100), "\x00" * 100 * 100)
im.show()
Run Code Online (Sandbox Code Playgroud)