'5808'에 해당되는 글 1건

  1. 2011.06.28 [Python challenge Level11] - 5808 (odd-even)
2011. 6. 28. 02:05

[ Problem ] - http://huge:file@www.pythonchallenge.com/pc/return/5808.html

♧ 흐릿한 이미지가 보인다. (해당 타이틀을 보면 "odd-even" 홀수/짝수에 대한 힌트가 주어진다.)
♧ 해당 이미지를 PIL의 getpixel()로 픽셀 값을 읽어 보면 홀/짝 순으로 번갈아 가며 특정한 패턴이 보인다.

   

♧ 해당 픽셀 값을 짝수로 읽어보면 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# encoding=utf8
import urllib, StringIO
from PIL import Image, ImageDraw
 
# ① 이미지 파일 오픈.
u_img = urllib.urlopen(url).read()
im = Image.open(StringIO.StringIO(u_img))
 
# ② 짝수번째 픽셀을 저장할 빈 이미지 생성.
even_im = Image.new('RGB', (im.size[0], im.size[1]))
 
# ③ 해당 이미지의 짝수번째 픽셀값만 even_im에 변경하여 그리기.
for x in range(im.size[0]):
    for y in range(im.size[1]):
        if (x+y)%2 == 0:
            even_im.putpixel((x, y), im.getpixel((x,y)))
 
# ④ 해당 이미지를 반으로 출력. (320x240)
even_im.resize((320,240)).show()

   

♧ 출력 화면을 보면 오른쪽 위에 흐릿하게 'evil'이란 단어가 보인다.

  

   

[ Solution ] - http://www.pythonchallenge.com/pcc/return/evil.html

(※ 문제에 대한 다양한 해결법은 링크 참조.)

Posted by devanix