【发布时间】:2021-12-17 12:11:18
【问题描述】:
我想随机生成 100 张 100x100 像素的图像。
但是当我制作这张图片时,我想改变像素的颜色。
不知何故,图像总是相同的,因为它生成相同的数字。
我应该改变什么?
from PIL import Image, ImageDraw
import random
source_img = Image.open("base.png").convert("RGBA")
draw = ImageDraw.Draw(source_img)
Height = 100
Width = 100
R = 0
G = 0
B = 0
piece = 0
while (piece < 100):
while (width > 0):
while (height > -1):
color = random.randint(1,3)
if (color == 1):
R = 255
G = 0
B = 0
elif (color == 2):
R = 0
G = 255
B = 0
elif (color == 3):
R = 0
G = 0
B = 255
draw.rectangle(((heigth, 0), (heigth, width)), fill=(R, G, B))
heigth -=1
width -= 1
heigth = 100
piece +=1
source_img.save("images/" + str(piece) + ".png", "PNG")
print("Images is done!")
【问题讨论】:
-
您可以使用
fill = random.choice((255, 0, 0), (0, 255, 0), (0, 0, 255))简化您的逻辑。甚至将它们定义为常量:RED = (255, 0, 0)等,然后是fill = random.choice((RED, GREEN, BLUE))。 -
仍然创建相同的图像:(
-
不清楚您的代码应该做什么,以及它与您想要的有何不同。您能否提供示例输入图像、您的预期输出和当前输出?
-
所以,我想要 100 张完全不同的图像。图像之间的区别在于像素的颜色。但它会不断生成相同顺序的像素并制作 100 张相同的图像。
-
@ddejohn 你能在你的电脑上测试吗?也许更容易看到它在做什么。
标签: python image random python-imaging-library