最近我看好多人的朋友圈都流行發九宮格照片,別人都能擁有,碼農必須有,當然,我們要比其他人更為高調,我們就用Python來對圖片進行處理,這肯定能秀翻你的朋友圈,廢話不說,開干,

一、圖片匯入與資訊查看
在對影像進行處理之前,我們首先需要加載出來一張圖片,我們以加載檔案中存在的影像為例子,加載圖片并查看圖片資訊,操作如下:
###Python學習交流Q群:906715085### from PIL import Image img = Image.open('G:\image\horse.jpeg','r') img.show() #展示影像 print(img.size,img.format,img.mode)
Image中利用open(filename,mode)函式打開影像,通過show函式可以展示儲存在G盤image檔案夾下名horse且格式為jpeg的影像,如下所繪,
通過回傳物件的屬性,來查看影像資訊,其中,size通過像素表示打開影像的大小——寬度和高度,每一個像素代表一個坐標單位;format表示影像的格式,包括PNG、JPEG等;mode表示影像的模式,包括RGB、HSV等,回傳的資訊如下所示:

二、影像的裁剪
當我們拍攝出廢片時,不要慌張,可以視情況截取出自己需要的部分來拯救廢片,裁剪影像用的函式為crop(box),它回傳的也是一個Image物件,其中box是一個含有四個數字的元組,前兩個數字表示裁剪的矩形影像區域中左上角的橫縱坐標,后兩個數字代表右下角的橫縱坐標,我們可以根據圖片的大小,輸入相應的坐標進行裁剪,
###Python學習交流Q群:906715085###
matrix = (300,250,700,500) img_horse = img.crop(matrix) img_horse.show()

截取到的影像如上所示,我們就得到了大圖中的一部分,如果要對處理后的影像進行保存,可以使用save(filename,format)函式來保存指定格式的影像,
img_horse.save('3.png','png')

三、影像亮度的增強
有時候拍出來的照片亮度不夠或者過亮都會成為廢片,我們可以使用影像增強函式ImageEnhance來對圖片的亮度進行調整,我們仍以“horse.jpeg”影像為例子,將亮度增加50%,
from PIL import ImageEnhance bright = ImageEnhance.Brightness(img) #ImageEnhance.Brightness用于增加圖片的亮度,并回傳一個Image物件bright img_bright = bright.enhance(1.5) img_bright.show()
結果如下所示:

四、九宮格照片
想發一張圖,又想發九宮格,我們通過Python來操作一下,就可以實作啦!
###Python學習交流Q群:906715085###
from PIL import Image im = Image.open('G:\image\horse.jpeg') # 讀取圖片 width = im.size[0]//3 height = im.size[1]//3 # 寬高各除 3,獲取裁剪后的單張圖片大小 start_x = 0 start_y = 0 # 裁剪圖片的左上角坐標 im_name = 1 # 用于給圖片命名 for i in range(3): # 回圈裁剪圖片 for j in range(3): crop = im.crop((start_x, start_y, start_x+width, start_y+height)) crop.save(str(im_name) + '.jpeg') # 裁剪圖片并保存 start_x += width im_name += 1 # 將左上角坐標的 x 軸向右移動 start_x = 0 # 當第一行裁剪完后 x 繼續從 0 開始裁剪 start_y += height # 裁剪第二行
我們執行上面的代碼后,就會得到1~9格式為“jpeg”的圖片,我們將圖片編輯一下就可以發朋友圈啦!

五、動圖轉圖片
有時候看到一個可愛的動圖時,特別喜歡其中的某個瞬間,奈何手速不夠快,沒法準確的截取到,我們可以使用影像序列ImageSequence模塊來遍歷gif影像中的所有幀并保存為影像,匯入如下的海綿寶寶動圖:
from PIL import ImageSequence from PIL import Image gif = Image.open('G:\image\海綿寶寶.gif') for i,frame in enumerate(ImageSequence.Iterator(gif)): if frame.mode == 'JPEG': frame.save("%d.jpg" %i) else: frame.save("%d.png" % i)
得到如下結果:

我們可以從中挑選自己喜歡的圖片進行拼接,做成那種拼接圖,看起來也是不一樣的感覺呢!

以上介紹的只是PIL可實作的眾多功能中微不足道的幾種方法啦~大家可以使用這幾種方法來改變一下自己朋友圈的照片,快去實踐一下吧!這一篇到這里就沒有了,想看下一篇就要關注我才能看到最新的,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/455508.html
標籤:其他
上一篇:java——繼承
