我需要创建一个函数,它接受矩形的尺寸,然后是所需的像素颜色。到目前为止,我的功能看起来像这样:
def makeRectangle(width, height, desiredPixel):
# Begin with a rectangle image with all black pixels
resultImage = EmptyImage(width, height)
# Creates the total size of the rectangle image
size = width * height
# Change the color of all pixels
for i in range(width):
resultImage.setPILPixel(i, width, desiredPixel)
return resultImage
我认为我需要使用嵌套的for循环,但我找不到让所有像素颜色都能改变的方法。我现在的功能产生了要改变的中间像素线。
答案 0 :(得分:1)
PIL具有绘制矩形的功能:
draw = ImageDraw.Draw(resultImage)
draw.rectangle([0,0,width,height], fill=desiredPixel)
在Python中循环很慢,因此最好找到一个优化的函数来完成这类工作。
答案 1 :(得分:1)
不清楚您是否想要弄清楚如何循环,或者只想创建具有特定颜色的新图像。如果是后者,您可以在制作新图像时指定背景颜色,因此根本不需要循环:
im = Image.new("RGB", (width, height), "white")
或者您可以使用fill
或仅使用十六进制值指定颜色:
im = Image.new("RGB", (width,height), "#ddd" )
答案 2 :(得分:0)
您需要迭代x和y尺寸才能更改所有像素:
for x in range(width):
for y in range(height):
resultImage.setPILPixel(x, y, desiredPixel)
应该这样做。