使用python 3.x 对pythonchallenge-----14的解答过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用python 3.x 对pythonchallenge-----14的解答过程相关的知识,希望对你有一定的参考价值。

pythonchallenge-14地址 : http://www.pythonchallenge.com/pc/return/italy.html
技术分享
题目解析:获取的信息有 
①图片是一个便便一样的面包
②源代码中有信息如下
<!-- remember: 100*100 = (100+99+99+98) + (...  -->

③页面存在一个wire.png的图片,解析后得出图片的像素未1*10000

技术分享

分析题意,按2中的方法将3中的图片分解,然后按一图片意思,旋转着保存在图片中。。如:第100个像素,放在最上面一行,第100-199放在最右侧的一列上···

解题过程:
from PIL import Image
#页面上给的第二张图wire.png是一个10000*1的图片,是要改成一个100*100的图,
# 改的方式和面包一样,绕圈圈,比如说先向右走了100步,然后向下走99步,
# 再向左走99步,向上走98步,这样,一圈就完成了。
path = u‘./other/wire.png‘
img = Image.open(path)
imnew=Image.new(‘RGB‘,(100,100),color=(255,255,255))
#imnew.show()

num = 100
a = 100
counta = 0
for i in range(100):
    if a > 0:
        b = c = a - 1
        d = a - 2
        #listaa = [a,b,c,d]
        #crop参数为(左上坐标和右下坐标(不包含右下点))(left, upper, right, lower
        #a
        boxa = (counta,0,counta+a,1)
        region=img.crop(boxa)
        imnew.paste(region, (i, i))
        #b
        boxb = (counta+a,0,counta+a+b,1)
        region=img.crop(boxb)
        region = region.transpose(Image.ROTATE_270)
        imnew.paste(region, (100-i-1,i+1))
        #d
        boxc = (counta+a+b,0,counta+a+b+c,1)
        region=img.crop(boxc)
        region = region.transpose(Image.ROTATE_180)
        imnew.paste(region, (i, 100-i-1))
        #d
        boxd = (counta+a+b+c,0,counta+a+b+c+d,1)
        region=img.crop(boxd)
        region = region.transpose(Image.ROTATE_90)
        imnew.paste(region, (i, i+1))

        counta = counta+a + b + c + d
        a = a - 2

imnew.show()

 

  答案:cat

技术分享

 

 








以上是关于使用python 3.x 对pythonchallenge-----14的解答过程的主要内容,如果未能解决你的问题,请参考以下文章

使用python 3.x 对pythonchallenge-----5的解答过程

使用python 3.x 对pythonchallenge-----1的解答过程

使用python 3.x 对pythonchallenge-----14的解答过程

使用python 3.x 对pythonchallenge-----12的解答过程

翻译: Python 2.7.x和Python 3.x之间的主要区别(包括示例)

Python2.x 和 3.x 的区别