9张照片弄成一个九宫格( 二 )


需要注意的是,目前各大平台都不支持动画的自动播放 。比如微博必须动画才能移动 。如果以后支持动画的自动播放,那么动画9的这种分割是可以完美实现的 。目前效果和静止图片一样,只能看到每张运动图片的第一帧 。
生成9格视频
生成9格视频,不用拆分 。因为视频本身就是一个整体,没有哪个社交软件可以在同一个朋友圈或者微博里发9个视频 。
所以我们只需要在视频中间画四条分割线就可以完成9格视频的生成 。代码如下:
# generate9-gridvideodefgrid9 _ video(srcvideofilename,outputvideofilename): cap=cv2 。videocapture(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 。videowriter_ fourcc(* " mjpg")videowriter=cv2 。视频编写器(输出视频文件名) 。avi",fourcc,fps,(width,height))i=1 while(cap. isopended): ret,frame=cap. readifret: cv2 . 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)
panclass="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)videowriter. write(frame)else: breakcap. release
代码很简单,就是给每个视频画面画4条分割线 。运行后,效果如下:
使用pyqt5打包到exe接口
对于我们程序员来说,部署好的python环境可以直接运行上面的代码,生成你想要的9格素材 。但是对于不是程序员的伙伴来说,提供一个可运行的程序往往更友好 。
【9张照片弄成一个九宫格】在这里,博主会通过pyqt5将上述功能打包成gui界面程序 。因为代码太多,对pyqt5感兴趣的可以直接去github 。