您的位置:首页 > 编程语言 > Python开发

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

2017-09-19 16:41 316 查看
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放在最右侧的一列上···

解题过程:


fromPILimportImage #页面上给的第二张图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 foriinrange(100): ifa>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




                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: