import Image import re im = Image.open('oxygen.png') pix = im.convert('L').getdata() message = [] for i in range(0,608,7): message.append(chr(pix[im.size[0]*43+i])) print ''.join(message) print ''.join([chr(int(i)) for i in re.findall('[0-9][0-9]*', ''.join(message))])
這關真的是超卡,提示就只給一張圖
雖然上面有明顯的一條灰線,但就是不知道怎麼decode
後來找到要用額外的library: PIL 去分析圖片
(我一直以為會是Build-in library...所以尋找了很久很久)
然後用getpixel((x,y))去看,發現每個區塊的顏色RGB都相等
就可以先利用convert轉成L模式
( L = R * 299/1000 + G * 587/1000 + B * 114/1000 )
在這種狀況下L=R=G=B,接著選43~51列其中一列,在每個顏色區塊中選定一個pixel來處理
第一個跟最後一個區塊分別有5,8個pixel,所以range的開頭0~4都ok
終於搞懂了,真開心。
0 comments:
Post a Comment