自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

如何用Python代碼發(fā)一個(gè)炫酷的朋友圈

開發(fā) 后端
相信很多朋友在發(fā)朋友圈的時(shí)候,都會(huì)發(fā)一些話語,有些還會(huì)配一張圖,但是普通的配圖怎么符合我們程序員的身份呢?發(fā)出去都覺得沒牌面,應(yīng)該整點(diǎn)技術(shù)性的活。

 [[432004]]

相信很多朋友在發(fā)朋友圈的時(shí)候,都會(huì)發(fā)一些話語,有些還會(huì)配一張圖,但是普通的配圖怎么符合我們程序員的身份呢?發(fā)出去都覺得沒牌面,應(yīng)該整點(diǎn)技術(shù)性的活。

今天給大家?guī)硪粋€(gè)項(xiàng)目,這個(gè)小項(xiàng)目只用50行代碼就能實(shí)現(xiàn),它的名字叫做PIL(Python Image Library)。

其實(shí)這個(gè)項(xiàng)目要做的事情很簡(jiǎn)單,就是把原來的一張圖切圖,變?yōu)?張圖,看著就有牌面了,成功霸屏。

那有的朋友就會(huì)問了,這也只是正方形的圖片,那我的圖片要是很長(zhǎng)或者很寬,切不了9張圖,那怎么辦?

其實(shí)很簡(jiǎn)單,只要把高和寬計(jì)算出來,然后取最大值就可以了,比如下面這一張Python圖片:

就可以構(gòu)造出一張正方形的圖片啦

當(dāng)然,想把一張圖片做成這樣子也很容易啦,現(xiàn)在很多手機(jī)上的圖片處理軟件都能實(shí)現(xiàn)。

其實(shí)這個(gè)小程序的開發(fā)思路也很簡(jiǎn)單,用圖片展示給大家康康:

對(duì)應(yīng)代碼如下: 

  1. # -*- coding: utf-8 -*-  
  2. '''  
  3. 將一張圖片填充為正方形后切為9張圖  
  4. '''  
  5. from PIL import Image  
  6. import sys  
  7. #將圖片填充為正方形  
  8. def fill_image(image):  
  9.     width, height = image.size    
  10.     #選取長(zhǎng)和寬中較大值作為新圖片的  
  11.     new_image_length = width if width > height else height      
  12.     #生成新圖片[白底]  
  13.     new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')    
  14.     #將之前的圖粘貼在新圖上,居中 if width > height:#原圖寬大于高,則填充圖片的豎直維度  
  15.  #(x,y)二元組表示粘貼上圖相對(duì)下圖的起始位置  
  16.         new_image.paste(image, (0, int((new_image_length - height) / 2)))  
  17.     else:  
  18.         new_image.paste(image, (int((new_image_length - width) / 2),0))   
  19.     return new_image  
  20. #切圖  
  21. def cut_image(image):  
  22.     width, height = image.size  
  23.     item_width = int(width / 3)  
  24.     box_list = []      
  25.     # (left, upper, right, lower) for i in range(0,3):#兩重循環(huán),生成9張圖片基于原圖的位置 for j in range(0,3):  
  26.             #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))  
  27.             box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)  
  28.             box_list.append(box)  
  29.     image_list = [image.crop(box) for box in box_list]      
  30.     return image_list  
  31. #保存  
  32. def save_images(image_list):  
  33.     index = 1   
  34.     for image in image_list:  
  35.         image.save('./result/python'+str(index) + '.png', 'PNG')  
  36.         index += 1  
  37. if __name__ == '__main__':  
  38.     file_path = <span data-raw-text="" "="" data-textnode-index="116" data-index="1619" class="character">"python.jpeg<span data-raw-text="" "="" data-textnode-index="116" data-index="1631" class="character">
  39.     image = Image.open(file_path)    
  40.     #image.show() 
  41.     image = fill_image(image)  
  42.     image_list = cut_image(image)  
  43.    save_images(image_list) 

相信大家看了代碼就知道是怎么實(shí)現(xiàn)的了吧,代碼中可能比較難理解的地方二胖也給出了相應(yīng)的注釋,大家趕快把代碼下載下來拿去跑一跑。 

 

責(zé)任編輯:龐桂玉 來源: 馬哥Linux運(yùn)維
相關(guān)推薦

2020-06-08 15:18:50

Python圖片PIL

2021-06-23 10:24:06

微信macOS移動(dòng)應(yīng)用

2018-03-19 14:54:14

程序員朋友圈技術(shù)

2019-05-15 15:40:18

朋友圏微信評(píng)論

2022-04-19 09:18:56

Python代碼Linux

2021-02-16 00:17:39

電腦技巧系統(tǒng)

2015-12-18 18:11:37

酷狗

2015-03-13 11:20:12

QQ瀏覽器朋友圈Apple Watch

2016-09-12 14:32:16

戴爾

2019-11-24 22:17:21

Python代碼圖表

2020-01-03 10:50:16

Python編程語言Mac電腦

2013-11-06 14:25:30

微信朋友圈

2021-06-21 14:27:28

微信朋友圈移動(dòng)應(yīng)用

2015-01-26 09:29:56

微信朋友圈

2014-12-25 10:31:33

微信朋友圈挑戰(zhàn)

2020-03-13 13:19:28

微信廣告隱私

2023-03-09 07:29:28

微信朋友圈架構(gòu)

2023-02-06 08:25:51

開源項(xiàng)目去中心化

2013-12-25 10:47:09

2018-10-16 14:30:22

Python微信朋友圈
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)