使用python 3.x 對pythonchallenge-----14的解答過程
阿新 • • 發佈:2017-09-19
.html log for turn bsp show wire 技術 走了
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的解答過程