歡迎光臨
每天分享高質量文章

用Python給朋友圈增添一些有意思的小東西

發朋友圈我想是大多數都喜歡做的事情 ,因為可以分享自己的生活,記錄自己的生活,每當自己回頭翻看自己以前發的朋友圈的時候,心裡面感覺又是另一番回味….

都知道發朋友圈有”九宮格”的說話,特別對於有著”強迫症”的小夥伴而言,一共集齊九張圖,才能讓自己心滿意足…..但是有時候很尷尬,那麼這次小編就教一招,用Python輕鬆解決這個問題,而且還能讓你朋友圈B格提升一個檔次!

首先咱們要準備好Python環境和需要的模組!

沒有Python的朋友可以去百度下載安裝一下!

模組主要是用到 PIL 那是不是直接pip install PIL 呢

很明顯不可以,正確的安裝姿勢:

pip install pillow

咱們先看看效果圖吧!

是不是把一張完好的圖拆分成九張圖了呢?

那怎麼看看 朋友圈裡面是怎麼樣的

是不是感覺檔次瞬間就不一樣了呢!!

原圖是這樣的




程式碼

from PIL import Image  
import sys  
#先將 input image 填充為正方形  
def fill_image(image):  
    width, height = image.size      
    #選取長和寬中較大值作為新圖片的  
    new_image_length = width if width > height else height      
    #生成新圖片[白底]  
    new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')   #註意這個函式!  
    #將之前的圖貼上在新圖上,居中   
    if width > height:#原圖寬大於高,則填充圖片的豎直維度  #(x,y)二元組表示貼上上圖相對下圖的起始位置,是個坐標點。  
        new_image.paste(image, (0, int((new_image_length - height) / 2)))  
    else:  
        new_image.paste(image, (int((new_image_length - width) / 2),0))      
    return new_image  
def cut_image(image):
    width, height = image.size
    item_width = int(width / 3)  #因為朋友圈一行放3張圖。
    box_list = []
    # (left, upper, right, lower)
    for i in range(0,3):
        for j in range(0,3):
            #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
            box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
            box_list.append(box)
    image_list = [image.crop(box) for box in box_list]
    return image_list
#儲存  
def save_images(image_list):  
    index = 1   
    for image in image_list:  
        image.save(str(index) + '.png''PNG')  
        index += 1  
if __name__ == '__main__':  
    file_path = "4.jpg"  
    image = Image.open(file_path)     
    #image.show()  
    image = fill_image(image)  
    image_list = cut_image(image)  
    save_images(image_list) 

想要一個良好的學習交流環境?

點“閱讀原文”即可加入

贊(0)

分享創造快樂