【原创】pythonchalleng——第11题

        第十一题的网址:http://www.pythonchallenge.com/pc/return/5808.html,下面是该题目的截图,特此留念。

2011-09-03_132250

        能够找到的提示:

      • 页面标题:odd even
      • 页面图片:看起来好像是两张图片的合成。

        根据上面的“奇偶”提示,应该是利用Image模块操作该图片,将两张图片分离。

                最初的思路是横纵坐标都为奇数的点组成一张图片;横纵坐标都为偶数的点组成一张图片。因为以前写过操作图片的例子(如果大家忘了,可以参考 《【原创】pythonchalleng——第9题》),所以代码写起来比较轻松。但是得到的图片却不是像我想象的那样,根本没有任何提示信息。

                没有办法,于是上网搜索思路,发现原先的大体思路还是正确的,但是处理像素的时候有错误,应该是从左上角开始,第奇数个点保存在一张图片中;第偶数个点保存在一张图片中。下面给出自己写的代码。

        ''' 
        Created on 2011-9-2 
        @author: hengha 
        ''' 
        import Image 
        def dealOddandEven(path): 
            img=Image.open(path, 'r') 
            width=img.size[0] 
            height=img.size[1] 
             
            odd = even = Image.new(img.mode, (width/2, height/2))   
             
            for i in range(width): 
                for j in range(height): 
                    pixel=img.getpixel((i,j)) 
                    if i%2==0 and j%2==0: 
                        even.putpixel((i/2,j/2),pixel) 
                    elif i%2==1 and j%2==1: 
                        even.putpixel(((i-1)/2,(j-1)/2), pixel) 
                    elif i%2==1 and j%2==0: 
                        odd.putpixel(((i-1)/2,j/2), pixel) 
                    elif i%2==0 and j%2==1: 
                        odd.putpixel((i/2,(j-1)/2), pixel) 
            odd.save('odd.jpg') 
            even.save('even.jpg') 
             
        if __name__ == '__main__': 
            dealOddandEven('cave.jpg')

        不知道是不是写的代码有问题,最后得到的两张图片居然一样……,效果如下:

        odd   even

                从图片中我们可以看到evil字样,换到url中,看看效果。新的网址为 http://www.pythonchallenge.com/pc/return/evil.html,可以顺利进入下一题,第12题。


      本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

      相关文章

      立即
      投稿

      微信公众账号

      微信扫一扫加关注

      返回
      顶部