<fieldset id="gy0wc"></fieldset>
<fieldset id="gy0wc"></fieldset>
  • <ul id="gy0wc"><sup id="gy0wc"></sup></ul>
  • 當前位置:首頁 > 行業(yè)知識 > 綜合

    9張照片弄成一個九宮格

    關注:23 發(fā)布時間:2022-02-02 19:13:01

    我們很多人都有每天用手機刷朋友的習慣。或許大家都注意到了,比較近微信朋友圈和微博都開始玩9方圖了。

    可以說,把一張圖,或者一張動圖,或者視頻,分成9份,發(fā)給朋友圈,很有意思。

    ,博主們利用python、opencv、pyqt5的知識,幫你實現(xiàn)任意圖像、視頻、動畫的9格原理。

    文末還有生成9格的pyqt5源代碼和exe的可執(zhí)行文件。

    生成9格圖片

    一般來說,我們生成的9個正方形的原圖一定是正方形。畢竟朋友圈和微博整體的9個方格都是正方形。

    但是為了完成9格,博主只需要刪除下面的代碼就可以完成任意圖形的9格,但是大部分平臺不支持非正方形9格圖片。

    下面,我們直接把一張圖片分成9份,代碼如下:

    #如果不是os . path . exists(" image "): os . make readers(" image ")image=cv2 . imead(image filename,1) #刪除代碼段標題高度,寬度,n=image . shapeif width=height : image=cv2 . resize(image,(width,width))height=width else : image=cv2 . resize(image,(height,height))width=height #刪除結束高度* (i 1),j *寬度,寬度* (j 1))結果=圖像[i * height:height * (i 1),j * width : width *(j 1)]打印(" image/" str(x)")。 png")cv2.imwrite("image/" str(x)"。" png ",結果)x=1

    這里,我們是一個橫切算法。首先,在j循環(huán)結束之前我是不會改變的,所以我們可以保證之前的分段永遠是三分之一。

    后一部分是寬度分割,第一部分是j=0,后一部分是j=1作為第一個三分之一。經過一個周期,j=1,即(width,width*2),比較后當j=2時,(width * 2,width*3)。(刪除紙條中間的代碼,你就得到9份任意圖。)

    i和j的算法是一樣的,原理如下。記住這里是寬度,高度是用整個寬度和高度除以3得到的。

    當然,用繪圖工具分割有點不規(guī)則。請見諒,讀者可以把它當成常規(guī)。同時,如果我和j改變位置,那么圖片就是一個垂直分割算法。會從左到右,從上到下切割。

    生成9方形網格動畫

    動圖可以通過兩種形式生成:一種是提供一個短視頻,轉換成動圖;一種是直接提供一個gif動畫,直接剪切。

    短視頻生成動畫9格

    首先,我們來看一看,提供一個簡短的視頻分割后動畫。代碼如下:

    #短視頻生成9-grid動畫defgrid 9 _ gif(srcvideofilename): if not os . path . exists(" gif "): os . make readers(" gif ")all _ frames=[]cap=cv2。video capture(srcvideofilename)fps=cap . get(cv2。cap_prop_fps)為i在范圍(9)內: list=[]all _ frames . append(list)while(cap . isopended): ret,frame=cap . readif ret : height,width,n=frame . shapeif width=height : frame=cv2 . r

    esize(frame,(width,width))height=width else : frame=cv2 . resize(frame,(height,height))width=height height=int(height/3)width=int(width/3)frame _ list=[]for i in range(0,3):for j in range(0,3): result=frame[i * height : height *(i ^ 1),j * width 3360 width *(j ^ 1)]frame _ list . append(result)append(image)else : break for index,frames in zip(range(9),all _ frames): imageio . mimsave(" gif/" str(index 1)")。gif ",幀," gif ",持續(xù)時間=float(1/fps))cap.release

    事實上,可以看出中間的分割算法與圖片中的完全相同。因為視頻本身是由單一畫面組成的。

    在這里,我們只需要對視頻的每一張圖片進行分段,然后分別存儲??赐曛?,我們可以把每個部分轉換成gif。(至于每幀運動畫面的間隔時間,是視頻的1/fps)

    gif直接生成動畫9格

    對于gif,opencv不直接處理動畫的功能。所以比較簡單的方法就是把動畫轉換成視頻,然后通過上面的代碼進行處理。

    代碼如下:

    # gif生成9方畫defgrid 9 _ gif 2(srcgiffilename):

    clip=mp。視頻文件剪輯(srcgiffilename)

    clip . write _ video file(" gifvideo . mp4 ")

    grid9_gif("gifvideo.mp4 ")

    這里使用moviepy庫將gif轉換成視頻,然后由上面的grid9_gif處理。

    需要注意的是,目前各大平臺都不支持動畫的自動播放。比如微博必須動畫才能移動。如果以后支持動畫的自動播放,那么動畫9的這種分割是可以完美實現(xiàn)的。目前效果和靜止圖片一樣,只能看到每張運動圖片的第一幀。

    生成9格視頻

    生成9格視頻,不用拆分。因為視頻本身就是一個整體,沒有哪個社交軟件可以在同一個朋友圈或者微博里發(fā)9個視頻。

    所以我們只需要在視頻中間畫四條分割線就可以完成9格視頻的生成。代碼如下:

    # generate 9-grid video def grid 9 _ video(srcvideofilename,output video filename): cap=cv2。video capture(srcvideofilename)fps=cap . get(cv2。cap_prop_fps)寬度=int(cap.get(cv2。cap_prop_frame_width))高度=int(cap.get(cv2。cap _ prop _ frame _ height))fourcc=cv2。video writer _ fourcc(* " mjpg ")video writer=cv2。視頻編寫器(輸出視頻文件名)。avi ",fourcc,fps,(width,height))i=1 while(cap . isopended): ret,frame=cap . readif ret : cv 2 . line(frame,(0,int(height/3)),(width,int(height/3)),(255,255,255),3)cv2.line(frame,(0,int(height/3 * 2)),(width,int(height/3 * 2)),(255,255,255)

    pan class="hljs-number"0),(int(width/3),height,(255,255,255),3)cv2.line(frame,(int(width/3 * 2),0),(int(width/3 * 2),height,(255,255,255),3)video writer . write(frame)else : break cap . release

    代碼很簡單,就是給每個視頻畫面畫4條分割線。運行后,效果如下:

    使用pyqt5打包到exe接口

    對于我們程序員來說,部署好的python環(huán)境可以直接運行上面的代碼,生成你想要的9格素材。但是對于不是程序員的伙伴來說,提供一個可運行的程序往往更友好。

    在這里,博主會通過pyqt5將上述功能打包成gui界面程序。因為代碼太多,對pyqt5感興趣的可以直接去github。

    猜你喜歡

    • 照片九宮格怎么弄

      照片九宮格怎么弄114人支持

      如何用手機拍照制作九宮格?只需要4步。這樣送朋友真好看!國慶節(jié)中秋節(jié)過去了。你拍過照片嗎?拍照后,很多朋友都喜歡和朋友分享。今天教大家一招,,讓你發(fā)的朋友圈更好看,和用手機就…

    • 漲跌幅是什么意思

      漲跌幅是什么意思45人支持

      先說股市漲停。我們不討論它為什么有限,也不討論它是好是壞。我們只討論這個極限給我們帶來了什么,是更多的風險還是更多的安全。既然有漲跌,也有同樣的區(qū)間a,那么就發(fā)生了有趣…

    • 5g手機功能有哪些

      5g手機功能有哪些10人支持

      在我看來,5g手機除了5g之外,最重要的功能就是續(xù)航和視頻,因為5g手機的耗電速度比4g手機高很多,而且隨著5g網速的提高,短視頻已經成為一個綜合的出口。我來說說自己上半年使用5g手…

    • 小米分期額度怎么提出來?

      小米分期額度怎么提出來?101人支持

      小米分期付款是小米金融旗下的消費產品。在商場,可以用小米分期定額消費。這個額度和我們常見的白條差不多,不能直接提現(xiàn)。如果你想提取現(xiàn)金,你必須使用某些方法。下面的小系列…

    • 錢塘江觀潮最佳地點

      錢塘江觀潮最佳地點78人支持

      錢塘江觀潮最佳地點:每年農歷八月十八左右,是觀潮的最佳時間。這期間秋日陽光明媚,金風宜人。錢塘江口的海堤上,游人如織,興致盎然,爭奇斗艷。錢塘看秋潮最好的地方有三個。第一個…

    • 狼雨seo:七個seo步驟

      狼雨seo:七個seo步驟94人支持

      作為一個專業(yè)的seo公司級領導,其seo優(yōu)化專家告訴大家,seo是一項需要足夠耐心和細致呵護的腦力勞動,主要分為八個步驟。第一步是找到關鍵詞。這是seo優(yōu)化最重要的一步,包括關鍵量…

    • 新手怎么跑滴滴才能掙到錢?

      新手怎么跑滴滴才能掙到錢?45人支持

      雖然越來越多的司機加入滴滴。他們分為兩種人。一種是提前做好準備,收集各種“情報”,咨詢很多跑滴滴的老司機,做足準備再開始接單跑車。這樣的人一般會很快適應滴滴的“生存?!?/p>

    • 怎么開通花唄收款功能

      怎么開通花唄收款功能59人支持

      最近,小編分享了一個關于開花店收錢的教程,引起了許多支付寶用戶的注意。最初,柏華的貨幣收集主要是為了商人的服務。但是部分支付寶賬號級別較高的個人用戶也可以按照教程完成…

    • 微信詐騙怎么追回錢

      微信詐騙怎么追回錢96人支持

      日常生活中,大家都喜歡使用微信聊天或者微信支付等功能。用了這么久微信,轉賬后對方勒索你,你知道怎么辦嗎?微信轉賬后對方刪除你為好友如何追回錢?遇到這樣的問題,教你一個技巧,追…

    • 馬云手相放大

      馬云手相放大97人支持

      1.m型是一種特殊的手型,大多數有這種手型的人是不一樣的。通過電影和資料不難發(fā)現(xiàn),大人物馬立克云、比爾蓋茨、巴菲特都是m型,非常特別,非常相似。它是由一條貫穿南北的事業(yè)線與…

    • 微信支付賬單怎么查詢

      微信支付賬單怎么查詢72人支持

      微信年賬單查詢只需六步。打開微信,點擊右下角的“我”,選擇支付,點擊錢包,點擊右上角的賬單,選擇統(tǒng)計,可以看到月賬單和年賬單的詳細數據;我們來看看詳細的操作步驟。1.打開微信,點…

    • 網紅怎么賺錢

      網紅怎么賺錢55人支持

      不說別的,就說李佳琪吧!前不久有消息說李佳琪買了1.3億的豪宅,這錢還是別人的凈資產!然而,在李佳琪1.3億套豪宅曝光后,評論中有很多罵聲?因為有很多人跟樓主一樣的疑問,為什么網紅那…

    主站蜘蛛池模板: 亚洲A∨午夜成人片精品网站| 久久久久久久久久久免费精品| 国产99精品一区二区三区免费| 亚洲AV蜜桃永久无码精品| 国产网红无码精品视频| 久久精品夜色噜噜亚洲A∨| 成人精品综合免费视频| 正在播放国产精品每日更新| 99久久精品免费看国产免费| 99久久精品午夜一区二区| 亚洲精品成人片在线观看精品字幕| 国产精品久久久99| 国产精品三级在线| 久久精品亚洲日本波多野结衣 | 国精品产露脸自拍| 亚洲精品小视频| 国产成人精品久久免费动漫| 久久精品国产亚洲av高清漫画| 伊人久久精品无码二区麻豆| 精品人妻少妇一区二区三区不卡 | 四虎国产精品永久在线看| 国产精品无码永久免费888| 2020国产精品| 精品久久久久久中文字幕| 中文字幕久精品免费视频| 国产欧美一区二区精品性色99| 国产精品久久久久aaaa| 午夜精品久久久久久毛片| 欧美国产成人精品一区二区三区| 最新国产精品亚洲| 55夜色66夜色国产精品视频| 久久久久人妻精品一区三寸蜜桃| 亚洲高清国产AV拍精品青青草原| 亚洲综合av永久无码精品一区二区 | 国产精品区一区二区三在线播放| 亚洲AV无码乱码精品国产 | 成人午夜精品视频在线观看| 午夜精品久久久久久中宇| 亚洲精品无码久久毛片| 日韩三级精品| 无码精品蜜桃一区二区三区WW|