我在Python中使用PIL和图像模式。 我想用以下代码创建一个图像:
imagesize = (12,12)
image = Image.new("RGB",imagesize,color=None)
我将使用此函数在图像上放置像素:
.putpixel(xy, color)
颜色在元组列表中。例如:
RGB = [((255, 255, 255),(207, 103, 36),(204, 93, 21),(204, 93, 21),(204, 93, 21), (.......some more RGB tuples.....)]
我需要一个循环,在.putpoixel(xy,color)中:
颜色每增加一步。例如RGB[0],next循环RGB[1]等等。 在这个循环中,x和y对我来说更难。 当y为0时,x从1变为12(图像大小),然后,当x达到image size时,它返回到1到12,但y现在是1。当x和x都达到图像大小的末尾时,循环结束。
有人能帮我吗?我是Python新手。
谨致问候
法瓦拉斯
编辑
p:S-忘了说,因为这是一个学校项目,所以除了img.new、img.show和img.outpixel之外,我不能使用任何方法
这取决于您想如何放置RGB颜色。例如:
将0到N个RBG颜色设置为0到N个像素,0到N个rgb设置为0+N,2N个像素,依此类推。 还有其他选项-随机选择颜色:
对这两种情况的优化都作为一项练习来完成。
如果有嵌套循环,i从0到11,j从0到11,那么要增量索引到一维向量,需要得到X[j+i*11]。
将打印0到24。
看到其他更好的方法填充图像的答案,可能有更多的Python的方式做这件事。但这是一般的答案!
注意,这是针对从零开始的变量,而不是从一开始的变量。对于12x12像素的图像,有效的xy范围是从0到11。
好吧,我上面的评论真的应该有个答案。我应该睡一觉。基本上你可以一次把你的像素数据放到图像中。图片的
putdata
方法接受组成图片像素的元组列表。所以:相关问题 更多 >
编程相关推荐