War game/pythonchallenge

pythonchallenge level16

badcob 2009. 12. 4. 08:09

http://www.pythonchallenge.com/pc/return/mozart.html

let me get this straight 라는 글귀와 그림 파일 하나가 덩그라니 있다.
이번엔 소스보기를 해도 별다른 힌트가 보이지 않는다.

어쩌라는 걸까 -_-

이젠 이미지를 보면 먼저 getpixel 로 비비게 된다.. 그런데 특이하게도 getpixel로 리턴되는 값이
RGB 형태가 아닌 그냥 숫자 하나 뿐이다. 왜 그런 것일까.

찾아보니 GIF 파일 포맷에서 사용하는 Indexed Color 때문이라는 것을 알 수 있었다.

장미님 블로그 Indexed Color에 대하여
http://blog.daum.net/ms1719/14382711
Indexed Color WIKIPEDIA http://en.wikipedia.org/wiki/Indexed_color

mozart.gif 파일을 크게 확대해보면 한 라인당 하나의 보라색 뭉텡이 들이 있는 것이 보인다.
getpixel 로 한줄 씩 읽어보니 각 라인마다 195라는 5개의 같은 값이 나타났다.

이 값들을 기준으로 정렬해보니 romance 라는 글자가 희미하게 보인다.
(나중에 안 사실이지만 좀 틀린 부분이 있었다-_-;;)

import Image

im =Image.open("mozart.gif")
im_new = Image.new('RGB',(640,480))

x = im.size[0]
y = im.size[1]

for j in range(y):
        for i in range(x):
                pix = im.getpixel((i,j))
                if pix == 195:
                        num = i
                        break
                
        for a in range(x):
                if num == x:
                        num = 0
                pix = im.getpixel((num,j))
                im_new.putpixel((a,j),pix)
                num += 1
        
im_new.save('result.gif')


http://www.pythonchallenge.com/pc/return/romance.html