gpt4 book ai didi

python - 使用 Python 图像库 (PIL) 通过输入像素值创建图像

转载 作者:太空狗 更新时间:2023-10-29 18:26:28 28 4
gpt4 key购买 nike

我想研究一个使用图像的想法,但我无法让它正确地写入像素值,它总是以灰色结束,并带有一些类似人工制品的图案,无论我尝试什么,人工制品都会改变,但图像保持灰色。

这是我的基本代码:

from PIL import Image
data = ""
for i in range( 128**2 ):
data += "(255,0,0),"
im = Image.fromstring("RGB", (128,128), data)
im.save("test.png", "PNG")

http://effbot.org/imagingbook/pil-index.htm中没有信息关于如何格式化 data,所以我尝试使用 0-1、0-255、00000000-111111111(二进制)、括号、方括号、无括号、alpha 的额外值并将 RGB 更改为RGBA(将其变成浅灰色,仅此而已),后面有逗号,后面没有逗号,但绝对没有任何效果。

郑重声明,我并不想只存储一种颜色,我这样做只是为了让它开始工作。

最佳答案

格式字符串应该这样排列:

“RGBRGBRGBRGB...”

其中R是单个字符,表示特定像素的红色值,G和B也是如此。

“但是 255 是三个字符长,我怎样才能把它变成一个字符呢?”你问。使用 chr 将您的数字转换为字节值。

from PIL import Image
data = ""
for i in range( 128**2 ):
data += chr(255) + chr(0) + chr(0)
im = Image.fromstring("RGB", (128,128), data)
im.save("test.png", "PNG")

结果:

enter image description here


替代方案:

如果您的数据尚未采用该格式,则使用 fromstring 是一种相当迂回的生成图像的方法。相反,请考虑使用 Image.load 直接操作像素值。这样您就不必进行任何字符串转换。

from PIL import Image

im = Image.new("RGB", (128, 128))
pix = im.load()
for x in range(128):
for y in range(128):
pix[x,y] = (255,0,0)

im.save("test.png", "PNG")

关于python - 使用 Python 图像库 (PIL) 通过输入像素值创建图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27445694/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com