Python challenge_7

第七题地址:http://www.pythonchallenge.com/pc/def/oxygen.html

刷新了两次,一直以为网速不给力,图片加载不清楚,然后查看源代码,也没有什么有效信息,只能直接查攻略了。知道要对图片进行处理,要用到第三方库函数PIL,完全没有碰过,先熟悉一下。http://blog.csdn.net/muyuxiaozi_2013/article/details/22174421

根据其他博客说的,先使用GIMP把图片里面的黑白条切出来,下了一个GIMP,这么高大上的图片处理工具,完全不会用,直接默默的偷看别人答案,黑白条的位置是box = (0,43,609,53),直接用Python来切了。

import Image
im = Image.open(r'D:\oxygen.png')
box = (0,43,609,53)
im = im.crop(box)
pixels = im.getdata()
print ('mode: %s' %im.mode)
print('number of pixel: %d' % len(pixels))
print(pixels[0])
lim = im.convert('L')
 
lpixels = lim.getdata()
 
print ''.join(chr(lpixels[i]) for i in range(0,609,7))
 

得到的结果是:smart guy, you made it. the next level is [105, 110, 116, 101, 103, 114, 105, 116, 121]

然后再把这段list转成字符的形式

 

block = [105, 110, 116, 101, 103, 114, 105, 116, 121]
print(''.join(chr(x) for x in block))

最后得到的结果是:integrity

所以,下一题的网址是:http://www.pythonchallenge.com/pc/def/integrity.html

 

1、间隔为取一个数字的原因是网上有人用GIMP观察出来,每一个黑色小方块里面有七个像素,不会用GIMP,只能直接抄了。

2、为什么要转成modeL的形式,L是八位像素的黑白色,原本是RGBA的模式,每一个有四个变量值,用split()将三色通道分离,随便取一个通道来做转换也是可以的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值