问题描述
在我的课程中,我必须创建以下图片(一张没有效果)
以下是我到目前为止尝试过的内容:
import PIL
from PIL import Image
from PIL import ImageEnhance
from PIL import ImageDraw
from PIL import ImageFont
fnt = ImageFont.truetype('readonly/fanwood-webfont.ttf',75)
# read image and convert to RGB
image=Image.open("readonly/msi_recruitment.gif").convert('RGB')
drawing_object = ImageDraw.Draw(image)
# build a list of 9 images which have different brightnesses
enhancer=ImageEnhance.Brightness(image)
images=[]
x = 0
for i in range(0,10):
x += 1
z = x
if x % 3 == 0 :
z = 9
drawing_object.rectangle((0,450,800,325),fill='black')
drawing_object.text((20,350),'channel intensity 0.{}'.format(z),font=fnt,fill=(255,255,255))
elif x % 3 == 1:
z = 1
drawing_object.rectangle((0,255))
else:
z = 5
drawing_object.rectangle((0,255))
images.append(enhancer.enhance(10/10))
## create a contact sheet from different brightnesses
first_image=images[0]
contact_sheet=PIL.Image.new(first_image.mode,(first_image.width*3,first_image.height*3))
x=0
y=0
for img in images:
# Lets paste the current image into the contact sheet
contact_sheet.paste(img,(x,y) )
#-->> I think the problem starts HERE <<--
pixels = img.load()
w = image.width
h = image.height
for x in range(3 * w):
for y in range(3 * h):
#-------0th row---------
if x in range(0,w) and y in range(0,h): # grid[0,0]
for i in range(w):
for j in range(h):
pixels[i,j] = (0,90)
elif x in range(w,2 * w) and y in range(0,1]
for i in range(w):
for j in range(h):
pixels[i,50)
elif x in range(2 * w,3 * w) and y in range(0,2]
for i in range(w):
for j in range(h):
pixels[i,10)
#--------1st row---------
elif x in range(0,w) and y in range(h,2 * h): # grid[1,j] = (90,0)
elif x in range(w,2 * w) and y in range(h,j] = (50,90)
elif x in range(2 * w,3 * w) and y in range(h,j] = (10,0)
#--------2nd row----------
elif x in range(0,w) and y in range(2 * h,3 * h): # grid[2,90,2 * w) and y in range(2 * h,50,0)
elif x in range(2 * w,3 * w) and y in range(2 * h,2]
for i in range(w):
for j in range(h):
pixels[i,10,0)
# Now we update our X position. If it is going to be the width of the image,then we set it to 0
# and update Y as well to point to the next "line" of the contact sheet.
if x+first_image.width == contact_sheet.width:
x=0
y=y+first_image.height
else:
x=x+first_image.width
# resize and display the contact sheet
contact_sheet = contact_sheet.resize((int(contact_sheet.width/2),int(contact_sheet.height/2) ))
display(contact_sheet)
image
是我得到的。当我运行此程序时,Jupyter Notebook单元将继续运行[*]
。好吧,在我用pixels
添加代码的一部分(在#-->> I think the problem starts HERE <<--
之后)之前,我在完全相同的视图中具有此网格,但是没有颜色效果。但是现在,我可能犯了一些错误。
感谢您的帮助。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)