python challenge 16
前情回顾:上一篇
打开16关,又是一张奇奇怪怪很多点点的图片,应该又是与PIL库有关的.
页面的标题是:let me get this straight。这是英语中的一句俚语,意思是让我把这事搞清楚.在这一关中其实是让我们把每一行像素位置调整后对其.
看这幅图片,很多红色的点,于是想到是不是这些点的像素有什么特别,将每一行的像素值打印出来后发现每一行都有连续的5个像素的值为195.
然后把每一行的像素移位,像素值195的移到最左边,然后对其就得到了新的图片.如下:
即下一关的url.
代码如下:
1 import urllib.request as ur 2 from PIL import Image 3 4 def main(): 5 im = Image.open("mozart.gif") 6 (width,height) = im.size 7 mode = im.mode 8 print(mode) 9 print(im.size) 10 11 imAnswer = Image.new(mode,(width,height)) 12 13 for y in range(height): 14 pixels = [im.getpixel((x,y)) for x in range(width)] 15 print(pixels) 16 17 x = pixels.index(195) 18 newpixels = pixels[x:width] + pixels[:x] 19 20 for x in range(width): 21 imAnswer.putpixel((x,y),newpixels[x]) 22 23 imAnswer.save('16Answer.gif') 24 25 26 if __name__ == '__main__': 27 main()
作者:sdu20112013
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎转载,转载请注明出处.