0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

如何利用樹(shù)莓派實(shí)現(xiàn)家用微信圖片九宮格web服務(wù)器

安費(fèi)諾傳感器學(xué)堂 ? 來(lái)源:安費(fèi)諾傳感器學(xué)堂 ? 2023-12-22 13:39 ? 次閱讀

恰逢公司成立10周年,發(fā)短信以賀。

文字不多,上圖片;一張不夠,來(lái)九張?

太分散,那就用一大張分成九份——九宮格圖片。

九宮格圖片的實(shí)現(xiàn)九行python代碼

逢年過(guò)節(jié)的,小編也是耐不住年底的湊那個(gè)熱鬧勁。

圖片有了,以下測(cè)試代碼中,長(zhǎng)寬像素是3的倍數(shù),比如1080x1080,這樣每條邊剛好3等分。

好像網(wǎng)上有工具,不過(guò)多需要提供你的個(gè)人信息以換取。小編個(gè)人信息不足為慮,但是心有不甘,干脆直接寫個(gè)代碼來(lái)實(shí)現(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)]


#將每部分圖按序命名后保存,保存路徑請(qǐng)自己設(shè)置
fori,tileinenumerate(tiles):#-row-7
cv2.imwrite("YourPathName/"+f"tile_{i}.png",tile)#-row-8


if __name__ == "__main__":
split_image("YourPathName/YourImageFile.png")#指定某個(gè)文件夾下的圖片文件名,文件擴(kuò)展名不限于png文件-row-9

需要安裝python插件,那就簡(jiǎn)單安裝:

pip install opencv-python

其他的如果需要,依葫蘆畫瓢進(jìn)行安裝。

如果圖片的長(zhǎng)寬剛好是3的倍數(shù),那么運(yùn)行該程序,會(huì)將原圖等分成9份。否則生成的圖片數(shù)量會(huì)多于9個(gè)。后續(xù)作為服務(wù)器的代碼處理中,小編讓圖片的邊長(zhǎng)強(qiáng)制成為3的倍數(shù)后再分割。再次提醒大家測(cè)試前面的代碼時(shí),需要留意這個(gè)部分。

微信很少發(fā),后續(xù)應(yīng)該是將這9個(gè)分圖(文件名中從0~8編號(hào))按順序插入你要發(fā)布的微信圖框中(對(duì)應(yīng)的1~9)就可以了。

效果如下:

圖片編號(hào)和順序

e0bd52c0-a081-11ee-8b88-92fbcf53809c.png

圖片名稱可以自己在代碼中另外設(shè)定。按照當(dāng)前的輸出設(shè)置,編號(hào)及順序從0~8如上圖所示。

剛好要到年底,大家發(fā)短信更加頻繁,小編后續(xù)也許會(huì)直接出一個(gè)可運(yùn)行的窗口程序,這樣打開(kāi)程序,挑選文件和輸出文件就可以更加方便處理了。不過(guò)手邊放個(gè)電腦確實(shí)不太方便。

每個(gè)人手邊電腦不一定一直有,但是手機(jī)一定有,單純地用軟件實(shí)現(xiàn)九宮格卻不可能讓每個(gè)人的拿著手機(jī)的同時(shí)還揣個(gè)電腦。想到之前公司的同事提供的一個(gè)樹(shù)莓派,就拿它做個(gè)文章了。

如果用樹(shù)莓派布置一個(gè)web服務(wù)器,由后臺(tái)提供這個(gè)功能,前端登錄后上傳圖片,然后拿到回傳的九宮格圖片,不就避免了很多麻煩?至少可以讓全家共享了。

樹(shù)莓派九宮格服務(wù)器

e0cedb44-a081-11ee-8b88-92fbcf53809c.png

step-1:樹(shù)莓派建操作系統(tǒng),建編程環(huán)境—亂是因?yàn)榫€多;

step-2:編寫調(diào)試前后端代碼;

e0e37b08-a081-11ee-8b88-92fbcf53809c.jpg

step-3:運(yùn)行web,用手機(jī)登錄頁(yè)面,從相冊(cè)或者文件夾里選圖片。

e0eb73d0-a081-11ee-8b88-92fbcf53809c.png

其實(shí)也想到app或者微信小程序會(huì)提供便捷,但是注冊(cè)之類的需要是否付費(fèi)或者提供資質(zhì)什么的讓小編暫不考慮,關(guān)鍵還不會(huì)那玩意。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Web服務(wù)器
    +關(guān)注

    關(guān)注

    0

    文章

    137

    瀏覽量

    24347
  • 樹(shù)莓派
    +關(guān)注

    關(guān)注

    116

    文章

    1684

    瀏覽量

    105399

原文標(biāo)題:樹(shù)莓派實(shí)現(xiàn)家用微信圖片九宮格web服務(wù)器

文章出處:【微信號(hào):安費(fèi)諾傳感器學(xué)堂,微信公眾號(hào):安費(fèi)諾傳感器學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    RK3588 GStreamer調(diào)試四路魚眼攝像頭四顯示報(bào)錯(cuò)

    | GStreamer warning: unable to start pipline. 具體報(bào)錯(cuò)如上,我用的是臨滴的3588,是將附帶例程從原有的九宮格的代碼想改成4的,4路顯示,行列分別為2。
    發(fā)表于 10-12 15:21

    九宮格如何解鎖

    請(qǐng)問(wèn)一下大家,安卓手機(jī)九宮格鎖了怎么解鎖,,,,小弟謝謝了
    發(fā)表于 03-06 17:55

    九宮格圖標(biāo)界面登陸與管理(類似手機(jī)界面)

    請(qǐng)問(wèn)哪位大師可以推薦類似九宮格圖標(biāo)界面的登陸與管理的例程呢?
    發(fā)表于 10-08 11:48

    請(qǐng)教大家關(guān)于主框架的選擇問(wèn)題

    本帖最后由 chj722 于 2015-6-27 23:09 編輯 大家好,有個(gè)問(wèn)題想請(qǐng)教。需要做一個(gè)程序,但是不知道用什么框架做比較好。界面是一個(gè)九宮格,代表8個(gè)方向,中間空的,方向與實(shí)物
    發(fā)表于 06-27 23:04

    教你怎么用樹(shù)莓構(gòu)建外網(wǎng)可訪問(wèn)的微型服務(wù)器

    護(hù)照賬號(hào)密碼,點(diǎn)擊登錄接下來(lái)需要配置端口了。先要確定你的樹(shù)莓在局域網(wǎng)內(nèi)的IP,我這里是給它一個(gè)靜態(tài)的IP:192.168.1.248然后按照下面列表添加端口添加好后,我們就來(lái)搭建樹(shù)莓
    發(fā)表于 05-16 10:44

    如何外網(wǎng)直接訪問(wèn)樹(shù)莓派上搭建的服務(wù)器

    。我現(xiàn)在是可以通過(guò)先登陸樹(shù)莓,再利用localhost:80的地址訪問(wèn)我的網(wǎng)頁(yè).但是我想能不能直接在外網(wǎng)通過(guò)輸入網(wǎng)址訪問(wèn)。我試過(guò)遠(yuǎn)程端口轉(zhuǎn)發(fā)將樹(shù)莓
    發(fā)表于 07-04 17:55

    九宮格鍵盤 已實(shí)現(xiàn)、大寫鎖 、長(zhǎng)按

    ` 本帖最后由 123abcfpga 于 2018-4-28 14:04 編輯 九宮格鍵盤實(shí)現(xiàn)字母輸入大寫鎖長(zhǎng)按等功能 提供源碼源碼獲?。河袃?積分(資料太貴、積分又沒(méi)有,只能靠發(fā)帖來(lái)維持維持生活了)`
    發(fā)表于 04-28 13:52

    51內(nèi)核迪文串口屏模擬手勢(shì)解鎖功能(九宮格&滑動(dòng))

    實(shí)現(xiàn),會(huì)更加美觀;變量圖標(biāo)用于在判斷為有效觸控時(shí),改變顯示內(nèi)容以達(dá)到提示的效果。 三、九宮格解鎖實(shí)現(xiàn)方法詳解3.1 主流程 3.2 解鎖流程 3.3 設(shè)定密碼流程 3.4 確認(rèn)密碼流程 四、滑動(dòng)
    發(fā)表于 10-31 10:51

    Photoshop九宮格制作方法

    Photoshop分享 九宮格制作(升級(jí))
    發(fā)表于 04-07 07:39

    求一種基于Qtopia的采用傳統(tǒng)九宮格方式的中文輸入法設(shè)計(jì)

    基于Qtopia的插件技術(shù),實(shí)現(xiàn)了傳統(tǒng)九宮格方式的中文拼音輸入法,該輸入法在輸入中文時(shí)支持詞語(yǔ)聯(lián)想功能及用戶輸入高頻詞自適應(yīng)功能。
    發(fā)表于 04-26 07:01

    #深入淺出學(xué)習(xí)eTs#(十五)九宮格密碼鎖

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com)一、需求分析相信沒(méi)有人沒(méi)有使用過(guò)九宮格解鎖吧,從智能機(jī)開(kāi)始迸發(fā)的時(shí)期到現(xiàn)在,我們本期就要做一個(gè)自己
    發(fā)表于 12-29 13:55

    如何設(shè)置樹(shù)莓媒體服務(wù)器

    現(xiàn)在,如果您跳回Windows計(jì)算機(jī)或任何與Upnp兼容的設(shè)備,則應(yīng)該可以看到您的服務(wù)器。在窗口上,如果單擊開(kāi)始,然后單擊計(jì)算機(jī),然后在左側(cè)單擊網(wǎng)絡(luò),則應(yīng)該可以在媒體設(shè)備部分下看到名為RASPI MINIDLNA的樹(shù)莓Mini
    的頭像 發(fā)表于 12-12 09:30 ?1902次閱讀
    如何設(shè)置<b class='flag-5'>樹(shù)莓</b><b class='flag-5'>派</b>媒體<b class='flag-5'>服務(wù)器</b>

    手機(jī)輸入法到底是九宮格好用還是全鍵盤好用

    手機(jī)輸入法到底是九宮格好用還是全鍵盤好用?這個(gè)話題已經(jīng)由來(lái)已久。
    的頭像 發(fā)表于 03-18 09:22 ?4521次閱讀

    樹(shù)莓派定時(shí)發(fā)送圖片服務(wù)器

    文章目錄一、 概述二、相關(guān)環(huán)境及使用材料說(shuō)明三、具體實(shí)現(xiàn)過(guò)程1.服務(wù)器代碼2. 樹(shù)莓客戶端代碼3.STM32部分代碼四、演示效果圖一、 概述   &nb
    發(fā)表于 12-17 18:43 ?8次下載
    <b class='flag-5'>樹(shù)莓</b>派定時(shí)發(fā)送<b class='flag-5'>圖片</b>到<b class='flag-5'>服務(wù)器</b>

    深入淺出學(xué)習(xí)eTs之九宮格密碼鎖功能實(shí)現(xiàn)

    本項(xiàng)目Gitee倉(cāng)地址:深入淺出eTs學(xué)習(xí): 帶大家深入淺出學(xué)習(xí)eTs (gitee.com) 一、需求分析 相信沒(méi)有人沒(méi)有使用過(guò)九宮格解鎖吧,從智能機(jī)開(kāi)始迸發(fā)的時(shí)期到現(xiàn)在,我們本期就要做一個(gè)自己
    的頭像 發(fā)表于 05-13 13:25 ?1428次閱讀
    深入淺出學(xué)習(xí)eTs之<b class='flag-5'>九宮格</b>密碼鎖功能<b class='flag-5'>實(shí)現(xiàn)</b>