恰逢公司成立10周年,發短信以賀。
文字不多,上圖片;一張不夠,來九張?
太分散,那就用一大張分成九份——九宮格圖片。
九宮格圖片的實現——九行python代碼
逢年過節的,小編也是耐不住年底的湊那個熱鬧勁。
圖片有了,以下測試代碼中,長寬像素是3的倍數,比如1080x1080,這樣每條邊剛好3等分。
好像網上有工具,不過多需要提供你的個人信息以換取。小編個人信息不足為慮,但是心有不甘,干脆直接寫個代碼來實現。這里分享代碼如下:
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)] #將每部分圖按序命名后保存,保存路徑請自己設置 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的倍數,那么運行該程序,會將原圖等分成9份。否則生成的圖片數量會多于9個。后續作為服務器的代碼處理中,小編讓圖片的邊長強制成為3的倍數后再分割。再次提醒大家測試前面的代碼時,需要留意這個部分。
微信很少發,后續應該是將這9個分圖(文件名中從0~8編號)按順序插入你要發布的微信圖框中(對應的1~9)就可以了。
效果如下:
圖片編號和順序
圖片名稱可以自己在代碼中另外設定。按照當前的輸出設置,編號及順序從0~8如上圖所示。
剛好要到年底,大家發短信更加頻繁,小編后續也許會直接出一個可運行的窗口程序,這樣打開程序,挑選文件和輸出文件就可以更加方便處理了。不過手邊放個電腦確實不太方便。
每個人手邊電腦不一定一直有,但是手機一定有,單純地用軟件實現九宮格卻不可能讓每個人的拿著手機的同時還揣個電腦。想到之前公司的同事提供的一個樹莓派,就拿它做個文章了。
如果用樹莓派布置一個web服務器,由后臺提供這個功能,前端登錄后上傳圖片,然后拿到回傳的九宮格圖片,不就避免了很多麻煩?至少可以讓全家共享了。
樹莓派九宮格服務器
step-2:編寫調試前后端代碼;
step-3:運行web,用手機登錄頁面,從相冊或者文件夾里選圖片。
其實也想到app或者微信小程序會提供便捷,但是注冊之類的需要是否付費或者提供資質什么的讓小編暫不考慮,關鍵還不會那玩意。
審核編輯:劉清
-
Web服務器
+關注
關注
0文章
138瀏覽量
24399 -
樹莓派
+關注
關注
116文章
1707瀏覽量
105610
原文標題:樹莓派實現家用微信圖片九宮格web服務器
文章出處:【微信號:安費諾傳感器學堂,微信公眾號:安費諾傳感器學堂】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論