Python Challenge 16의 Url은 다음과 같다
Python challenge 16 : http://www.pythonchallenge.com/pc/return/mozart.html
구성
무슨 노이즈가 화면에 껴있다. 일단 사진을 다운로드하여보자
사진의 이름은 mozart.gif이다. 단서로 보일 만한 점은 웹페이지의 title인
"Let Me get this Stright!"
이다.
해결 아이디어
저 영어가 번역하면, "우리 확실하게 짚고 가자!" 인데. Straight를 직선으로 번역을 하면, 정렬을 해달라는 의미가 된다. 일단 사진의 픽셀을 뜯어보면 신기하게 하나의 값만을 가지는 것을 알 수 있다.(RGBA가 아니다.)
### 16_1.py
from PIL import Image
if __name__=="__main__" :
with Image.open("mozart.gif") as img :
for x in range(img.width) :
print(img.getpixel((x,0)))
출력은 다음과 같은데, 특이하게 중간에 195라는 값이 있다. 아마 중간에 보이는 저 자주색 선 같다.
...
17
60
249
195
195
195
195
195
252
88
11
60
84
...
일단 mozart.gif의 모드를 img.mode로 구해보면 'P'모드라고 한다. 이 P 모드는 8비트의 값을 가진다고 한다. 그래서 0~255 사이의 Value만 픽셀 별로 가진 것이다. 다음은 이 195를 기준으로 정렬하고 mozart_a.gif로 저장하는 코드이다.
### 16_2.py
from PIL import Image
if __name__=="__main__" :
with Image.open("mozart.gif") as img :
new_img = Image.new("P",(640,480))
for y in range(img.height) :
row_array_img = list()
start_index = 0
for x in range(img.width) :
row_array_img.append(img.getpixel((x,y)))
start_index = row_array_img.index(195)
for x in range(img.width) :
real_x = (start_index+x)%img.width
new_img.putpixel((x,y),row_array_img[real_x])
new_img.save("mozart_a.gif","GIF")
찾았다. romance
Answer Url : http://www.pythonchallenge.com/pc/return/romance.html
'Python > Python Challenge' 카테고리의 다른 글
[Python Challenge 18] 즐거운 다른그림찾기놀이 (0) | 2021.06.02 |
---|---|
[Python Challenge 17] 얘 이것도 가져가렴 (0) | 2021.05.30 |
[Python Challenge 15] 다섯살 때부터 친 피아노 (0) | 2021.05.27 |
[Python Challenge 14] 빙글빙글 (2) | 2021.05.21 |
[Python Challenge 13] 자니??.... 그냥 전화해봤어... (0) | 2021.05.19 |