使用ffmpeg拼接两张图片
source link: https://zxs.io/article/1918
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
最近在工作中遇到了一个需求,就是需要将两张图片拼接在一起,作为一个封面图。如果只是临时拼接一张,我们可以只用photoshop之类的图片编辑工具,将两张图片拼接在一起。而我们的需要是需要实现自动化,由于之前使用过ffmpeg做过图片的操作,于是搜索了下,ffmpeg确实能实现两张图片的拼接,这里分享下相关操作的命令行。
为了方便演示拼接效果,我这里提前准备了两张图片,cat.jpg和dog.jpg。如果想练习本文中所涉及到的命令行,也可以直接下载这两张图。
备注:ffmpeg拼接图片时要求图片大小一致,所以我已经提前将两种图片预处理成同样大小的方形图片了。
水平or垂直拼接
首先是最简单的两种拼接,也就是直接将这俩张图水平或者垂直拼接在一起,我们先看垂直拼接命令行和效果。
ffmpeg -i cat.jpg -i dog.jpg -filter_complex vstack vout.jpg
再看下水平拼接的命令行和效果:
ffmpeg -i cat.jpg -i dog.jpg -filter_complex hstack hout.jpg
这里最重要的参数就是-filter_complex hstack
和 -filter_complex vstack
其中h代表英文单词horizontal,v代表英文单词vertical。
如果我们只想让两张图的部分拼接在一起,防止图片过宽或者过长,我们也可以filter_complex增加一些更复杂的参数来分别截取部分内容拼接起来,如下:
ffmpeg -i cat.jpg -i dog.jpg -filter_complex "[0:v]crop=960:1920:0:0[img1];[1:v]crop=960:1920:0:0[img2];[img1][img2]hstack" phoutput.jpg
其中[0:v]和[1:v]分别表示第一张图片和第二张图片的画面。crop=960:1920:0:0表示截取大小为960:1920的区域,后面的0:0表示从坐标0:0点(左上角)开始截取,[img1]和[img2]是临时命名的截取后的图片。hstack表示水平拼接,最后的拼接效果如下:
我们也可以截取狗狗图的右半部分,只需要将命令行中的第二个crop=960:1920:0:0
替换成 crop=960:1920:960:0
即可,完整命令和拼接效果如下:
ffmpeg -i cat.jpg -i dog.jpg -filter_complex "[0:v]crop=960:1920:0:0[img1];[1:v]crop=960:1920:960:0[img2];[img1][img2]hstack" phoutput1.jpg
这里相信你也能自己拼出来垂直拼接的命令了,完整命令和拼接效果如下:
ffmpeg -i cat.jpg -i dog.jpg -filter_complex "[0:v]crop=1920:960:0:0[img1];[1:v]crop=1920:960:0:960[img2];[img1][img2]vstack" pvoutput.jpg
通过本篇文章的介绍,我们了解了使用FFmpeg拼接两张图片的方法。可以看到出来,使用ffmpeg将两张图片拼接在一起还是相当简单的。希望这篇文章能够对大家有所帮助,如果您有任何疑问或者建议,欢迎在评论区留言。
Recommend
-
100
一张新的照片正在互联网上流传,让人想起着名的“服装”和墙上的雪茄光学幻想。在这种情况下,有两张照片显示同一条路,但是其中一张看起来是从不同的角度或高度拍摄的,其实它们都是完全一样的照片。
-
10
NGUI研究院之与图片拼接的1像素接缝(十六) 如下图所示美术给我两张255X255的图片让我来拼接。第二张图的X坐标明明是X偏移255的为什么中间有一像素呢?
-
7
OpenCV求职申请图片拼接任务#第2部分 fendouai...
-
4
GROUP_CONCAT适用于拼接多条数据相同列,需要使用分割符的字符串查询结果.默认使用逗号作为分隔符语法: 必须配合GROUP BY一起使用GROUP_CONCAT(字段)...
-
7
使用ffmpeg进行视频图片提取 环境:windows10-x64 ffmpeg的功能很强大,可以进行音频和视频的处理,这里记录下需要从视频文件提取图片的情...
-
5
最近在工作中遇到一个ffmpeg的坑,特此记录下。我们在工作中,有个需求是将分段存储的视频拼接成一个完整的视频,发现使用ffmpeg拼接后视频时长不对。举个列子,我用ffmpeg将4个半小时的mp4视频拼接后,得到的视频长度远超过2小时,观看后发现在视频的连接点,...
-
3
使用ffmpeg将图片拼接为视频 2021-11-21 分类:ffmpeg 阅读(2) 评论(0) 本文介绍下如何使用ffmpe...
-
8
这一次要和大家分享的一个Tips是在字符串拼接场景使用的,我们经常会遇到有很多短小的字符串需要拼接的场景,在这种场景下及其的不推荐使用String.Concat也就是使用+=运算符。 目前来说官方最推荐的方案就是使用StringBuilder...
-
5
图片拼接马赛克图像-Tiler – 开源派 Tiler是一款马赛克镶嵌画制作工具 。基于
-
4
开源软件 FFmpeg 生成模型使用图片数据集2023年11月14日
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK