1000張+圖片怎樣拼接在一起你踩,當然不能靠PS粘咖,也不能用美圖秀秀汁政,必須是編程來實現(xiàn)楣铁,而且一定要用Python玖雁。
用的是第三方庫 PIL , 官方文檔 http://effbot.org/imagingbook/
The Python Imaging Library (PIL) adds image processing capabilities to your Python interpreter. This library supports many file formats, and provides powerful image processing and graphics capabilities.
PIL已經(jīng)是Python平臺事實上的圖像處理標準庫。PIL功能強大盖腕,簡單易用赫冬。
Image 類是 PIL 庫中一個非常重要的類,通過這個類來創(chuàng)建實例可以有直接載入圖像文件,讀取處理過的圖像。
還是看看我要實現(xiàn)的N張圖片的拼接遭商,怎么做琼富?
基本的操作就是創(chuàng)建一張圖片,把要拼接的圖片讀取進來,順序貼(paste)到創(chuàng)建的這張圖中。
以下是Image類幾個最常用的方法。
new('RGBA', (x,y))
創(chuàng)建一張圖片风范,默認是黑色的〈环茫可以修改參數(shù)乌企。
image = Image.new('RGB', (width, height), (255, 255, 255))
open(filename) , save(outfilename)
open(filename) 打開一個圖片文件把圖片讀進來。save(outfilename)保存圖片成玫。
resize(size,size)
調(diào)整圖片大屑咏汀(縮放圖片)。近2000張圖片哭当,先要縮小一下猪腕。
paste(fromImage,where)
把圖片貼進來,坐標系钦勘,左上角是(0,0)
完整代碼:
# -*- coding:utf-8 -*-
# 圖片拼接
import PIL.Image as Image
import os, sys
mw = 133 # 圖片大小+圖片間隔
ms = 5
msize = mw * ms
fpre = "x" #圖片前綴
toImage = Image.new('RGBA', (msize, msize))
for y in range(1, 6): ## 先試一下 拼一個5*5 的圖片
for x in range(1, 6):
# 之前保存的圖片是順序命名的陋葡,x_1.jpg, x_2.jpg ...
fname = "x_%s.jpg" % (ms*(y-1)+x)
fromImage = Image.open(fname)
#fromImage =fromImage.resize((mw, mw), Image.ANTIALIAS) # 先拼的圖片不多,不用縮小
toImage.paste(fromImage, ((x-1) * mw, (y-1) * mw))
toImage.save('/Users/apple/Desktop/toimg/toImage_0.jpg')
為了防止密集恐怖彻采,我隨(jing)機(xin)選了25張來拼接腐缤。你們看看我的朋友圈顏值如何捌归。
PS: 你一定好奇,這些圖片是怎么來的岭粤,當然不是一張一張手動保存下來惜索。對,是Python爬蟲剃浇。還有什么有趣的微信朋友圈數(shù)據(jù)巾兆,敬請期待。