Python Challenge(11)
続いてレベル11。
わからないのでフォーラムを見ると、
Look very very closely at the image.
http://www.pythonchallenge.com/forums/viewtopic.php?t=38
よく見ると、顔のような絵が浮かび上がる様に見える。
タイトルの「odd even」からピクセルの座標が(奇数、偶数)のピクセルを集めれば答えが出来上がると予想。
画像の縁もギザギザになっているように見えるので、黒のピクセルが紛れていると見た。
PILのドキュメントを探してみるとImage.getpixelとImage.putpixelが使えそう。
import Image img = Image.open('cave.jpg') ans = Image.new(img.mode, (img.size[0]/2, img.size[1]/2), 'white') for y in range(img.size[1]): for x in range(img.size[0]): if x % 2 == 1 and y % 2 == 0: p = img.getpixel((x, y)) ans.putpixel((x/2, y/2), p) ans.save('ch11.jpg')
元の画像が縮小しただけに見える。
if文の条件を変えたら偶然いけた。
import Image img = Image.open('cave.jpg') ans = Image.new(img.mode, (img.size[0]/2, img.size[1]/2), 'white') for y in range(img.size[1]): for x in range(img.size[0]): if x % 2 == 1 and y % 2 == 1: p = img.getpixel((x, y)) ans.putpixel((x/2, y/2), p) ans.save('ch11.jpg')
全然、顔じゃねーし。
(x,y)が(偶,偶),(奇,奇)だと答え、(偶,奇),(奇偶)だと答えを隠すための絵になる。