恰逢公司成立10周年,發(fā)短信以賀。
文字不多,上圖片;一張不夠,來九張?
太分散,那就用一大張分成九份——九宮格圖片。
九宮格圖片的實現(xiàn)——九行python代碼
逢年過節(jié)的,小編也是耐不住年底的湊那個熱鬧勁。
圖片有了,以下測試代碼中,長寬像素是3的倍數(shù),比如1080x1080,這樣每條邊剛好3等分。
好像網(wǎng)上有工具,不過多需要提供你的個人信息以換取。小編個人信息不足為慮,但是心有不甘,干脆直接寫個代碼來實現(xiàn)。這里分享代碼如下:
import cv2 import numpy as np def split_image(image_path): img=cv2.imread(image_path)#讀取圖片文件 -row-1 imgheight=img.shape[0] #讀取圖片的高度-row-2 imgwidth=img.shape[1]#讀取圖片的寬度-row-3 M=(imgheight//3#高度的1/3取整-row-4 N=imgwidth//3#寬度的1/3取整-row-5 #均分圖片為9部分-row-6 tiles = [img[x:x+M,y:y+N] for x in range(0,imgheight,M) for y in range(0, imgwidth, N)] #將每部分圖按序命名后保存,保存路徑請自己設(shè)置 fori,tileinenumerate(tiles):#-row-7 cv2.imwrite("YourPathName/"+f"tile_{i}.png",tile)#-row-8 if __name__ == "__main__": split_image("YourPathName/YourImageFile.png")#指定某個文件夾下的圖片文件名,文件擴展名不限于png文件-row-9
需要安裝python插件,那就簡單安裝:
pip install opencv-python
其他的如果需要,依葫蘆畫瓢進行安裝。
如果圖片的長寬剛好是3的倍數(shù),那么運行該程序,會將原圖等分成9份。否則生成的圖片數(shù)量會多于9個。后續(xù)作為服務(wù)器的代碼處理中,小編讓圖片的邊長強制成為3的倍數(shù)后再分割。再次提醒大家測試前面的代碼時,需要留意這個部分。
微信很少發(fā),后續(xù)應(yīng)該是將這9個分圖(文件名中從0~8編號)按順序插入你要發(fā)布的微信圖框中(對應(yīng)的1~9)就可以了。
效果如下:
圖片編號和順序
圖片名稱可以自己在代碼中另外設(shè)定。按照當(dāng)前的輸出設(shè)置,編號及順序從0~8如上圖所示。
剛好要到年底,大家發(fā)短信更加頻繁,小編后續(xù)也許會直接出一個可運行的窗口程序,這樣打開程序,挑選文件和輸出文件就可以更加方便處理了。不過手邊放個電腦確實不太方便。
每個人手邊電腦不一定一直有,但是手機一定有,單純地用軟件實現(xiàn)九宮格卻不可能讓每個人的拿著手機的同時還揣個電腦。想到之前公司的同事提供的一個樹莓派,就拿它做個文章了。
如果用樹莓派布置一個web服務(wù)器,由后臺提供這個功能,前端登錄后上傳圖片,然后拿到回傳的九宮格圖片,不就避免了很多麻煩?至少可以讓全家共享了。
樹莓派九宮格服務(wù)器
step-1:樹莓派建操作系統(tǒng),建編程環(huán)境—亂是因為線多;
step-2:編寫調(diào)試前后端代碼;
step-3:運行web,用手機登錄頁面,從相冊或者文件夾里選圖片。
其實也想到app或者微信小程序會提供便捷,但是注冊之類的需要是否付費或者提供資質(zhì)什么的讓小編暫不考慮,關(guān)鍵還不會那玩意。
審核編輯:劉清
-
Web服務(wù)器
+關(guān)注
關(guān)注
0文章
138瀏覽量
24409 -
樹莓派
+關(guān)注
關(guān)注
116文章
1707瀏覽量
105671
原文標(biāo)題:樹莓派實現(xiàn)家用微信圖片九宮格web服務(wù)器
文章出處:【微信號:安費諾傳感器學(xué)堂,微信公眾號:安費諾傳感器學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論