0

0

MAC怎么把多张截图拼接成长图_MAC终端命令无缝合并图片【拼接】

穿越時空

穿越時空

发布时间:2026-02-07 15:53:29

|

415人浏览过

|

来源于php中文网

原创

可通过ImageMagick的montage或convert、sips链式处理、Python Pillow脚本、预览转PDF再抽帧、快捷指令封装及shell+awk动态生成命令等七种终端方案,实现Mac多张截图无缝纵向/横向拼接。

mac怎么把多张截图拼接成长图_mac终端命令无缝合并图片【拼接】

如果您已通过Mac截取多张局部截图,但需要将它们纵向或横向无缝拼接为一张长图,且希望借助终端命令实现自动化、无损合并,则可采用以下多种技术路径。以下是解决此问题的步骤:

一、使用ImageMagick的montage命令垂直拼接

该方法依赖开源图像处理工具ImageMagick,通过montage命令按指定顺序将图片堆叠为单张长图,支持统一缩放、间距控制与背景填充。

1、在终端中执行brew install imagemagick安装ImageMagick(如未安装Homebrew,请先运行/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)")。

2、确保所有待拼接截图按期望顺序命名,例如screenshot_01.pngscreenshot_02.pngscreenshot_03.png,并置于同一文件夹内。

3、进入该文件夹后,在终端中输入以下命令进行垂直拼接:montage -mode concatenate -tile 1x *.png -background none -gravity center output_long.png

4、检查生成的output_long.png,确认图片上下对齐无错位、无多余边距。

二、使用ImageMagick的convert命令手动叠加合成

当需精确控制每张图的Y轴偏移量(例如应对截图间存在重复区域或需微调对齐),convert配合-composite可实现像素级定位粘贴。

1、先获取首张图高度:identify -format "%h" screenshot_01.png,记下返回值(如1200)。

2、创建空白画布,高度为所有图高度之和(假设共3张,每张1200px,无重叠):convert -size 800x3600 xc:none canvas.png(其中800为截图宽度,需根据实际替换)。

3、依次将各图复合到画布指定位置:convert canvas.png screenshot_01.png -geometry +0+0 -composite temp1.png

4、继续叠加第二张:convert temp1.png screenshot_02.png -geometry +0+1200 -composite temp2.png(+1200表示从Y=1200处开始贴入)。

5、叠加第三张:convert temp2.png screenshot_03.png -geometry +0+2400 -composite output_long.png

三、使用sips命令链式裁剪+拼接(仅限同尺寸图)

macOS原生sips工具虽不直接支持拼接,但可通过生成带透明扩展区域的中间图,再结合catpngpaste等辅助完成基础纵向拼合。

1、为每张图添加底部透明扩展区(除最后一张):sips --padToHeightWidth 2400 800 screenshot_01.png --out padded_01.png(2400为目标总高,800为宽)。

2、使用pngpaste(需brew install pngpaste)将第一张图复制进剪贴板:pngpaste /tmp/clip1.png 。

3、将第二张图追加到底部:convert /tmp/clip1.png screenshot_02.png -append /tmp/clip2.png

4、重复追加操作:convert /tmp/clip2.png screenshot_03.png -append output_long.png

四、通过Python脚本调用Pillow库全自动拼接

若需稳定处理不同尺寸截图、自动识别重叠区域并消除接缝,Python脚本提供最大灵活性,且无需额外GUI软件。

1、在终端中安装Pillow:pip3 install pillow

2、新建文本文件stitch.py,写入如下内容(以垂直拼接为例):

闪电说
闪电说

AI语音输入法

下载

from PIL import Image
import sys
images = [Image.open(x) for x in sys.argv[1:]]
width = max(i.width for i in images)
height = sum(i.height for i in images)
result = Image.new('RGBA', (width, height))
y_offset = 0
for img in images:
result.paste(img, (0, y_offset))
y_offset += img.height
result.save('output_long.png')

3、保存后,在终端中执行:python3 stitch.py screenshot_01.png screenshot_02.png screenshot_03.png

4、脚本将在当前目录生成output_long.png,所有图片严格按参数顺序纵向拼接,宽度自适应为最宽图,高度累加。

五、利用预览应用+终端协同快速导出PDF再转图

当终端命令环境受限或图片含Alpha通道导致合成异常时,可先用预览批量生成PDF,再用pdfimagesconvert抽帧还原为单图。

1、在访达中全选截图文件,右键→“打开方式”→“预览”。

2、点击左侧面板缩略图右下角“合并”按钮,生成多页PDF文档。

3、在终端中执行:convert -density 300 merged.pdf -quality 100 output_long.pngconvert来自ImageMagick,-density确保清晰度)。

4、检查output_long.png是否完整包含全部页面内容,无压缩失真。

六、使用macOS快捷指令+shell动作混合执行

将终端命令封装进图形化快捷指令,兼顾易用性与命令行能力,适合频繁拼接场景。

1、打开“快捷指令”应用,点击右上角“+”新建快捷指令。

2、添加操作:“运行shell脚本”,在脚本框中填入:cd "$1"; montage -mode concatenate -tile 1x *.png -background none -gravity center "$2"

3、添加两个“快捷指令输入”变量:第一个设为“文件”,第二个设为“文本”,分别对应截图所在文件夹路径与输出文件名(如long.png)。

4、保存快捷指令,命名为“拼接长图”。

5、使用时,选中截图文件夹,右键→“服务”→“拼接长图”,输入输出名后回车执行。

七、使用sips + awk生成动态拼接命令

针对大量截图(如20+张)且需跳过损坏文件或按数字序号过滤时,可结合shell文本处理动态构造拼接链。

1、进入截图目录后,执行:ls screenshot_*.png | sort -V | awk '{print " "$1}' | xargs -I {} convert {} -resize 1200x\! -strip +repage /tmp/staged{}.png(统一缩放至宽度1200px并清理元数据)。

2、生成拼接列表:ls /tmp/staged*.png | sort -V | paste -sd ' ' -

3、将上步输出复制,粘贴至convert命令后:convert [粘贴内容] -append output_long.png

4、执行该完整命令,等待合成完成。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
python中print函数的用法
python中print函数的用法

python中print函数的语法是“print(value1, value2, ..., sep=' ', end=' ', file=sys.stdout, flush=False)”。本专题为大家提供print相关的文章、下载、课程内容,供大家免费下载体验。

191

2023.09.27

python print用法与作用
python print用法与作用

本专题整合了python print的用法、作用、函数功能相关内容,阅读专题下面的文章了解更多详细教程。

4

2026.02.03

sort排序函数用法
sort排序函数用法

sort排序函数的用法:1、对列表进行排序,默认情况下,sort函数按升序排序,因此最终输出的结果是按从小到大的顺序排列的;2、对元组进行排序,默认情况下,sort函数按元素的大小进行排序,因此最终输出的结果是按从小到大的顺序排列的;3、对字典进行排序,由于字典是无序的,因此排序后的结果仍然是原来的字典,使用一个lambda表达式作为key参数的值,用于指定排序的依据。

397

2023.09.04

format在python中的用法
format在python中的用法

Python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

864

2023.07.31

python中的format是什么意思
python中的format是什么意思

python中的format是一种字符串格式化方法,用于将变量或值插入到字符串中的占位符位置。通过format方法,我们可以动态地构建字符串,使其包含不同值。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

439

2024.06.27

curl_exec
curl_exec

curl_exec函数是PHP cURL函数列表中的一种,它的功能是执行一个cURL会话。给大家总结了一下php curl_exec函数的一些用法实例,这个函数应该在初始化一个cURL会话并且全部的选项都被设置后被调用。他的返回值成功时返回TRUE, 或者在失败时返回FALSE。

447

2023.06.14

linux常见下载安装工具
linux常见下载安装工具

linux常见下载安装工具有APT、YUM、DNF、Snapcraft、Flatpak、AppImage、Wget、Curl等。想了解更多linux常见下载安装工具相关内容,可以阅读本专题下面的文章。

179

2023.10.30

堆和栈的区别
堆和栈的区别

堆和栈的区别:1、内存分配方式不同;2、大小不同;3、数据访问方式不同;4、数据的生命周期。本专题为大家提供堆和栈的区别的相关的文章、下载、课程内容,供大家免费下载体验。

403

2023.07.18

Golang处理数据库错误教程合集
Golang处理数据库错误教程合集

本专题整合了Golang数据库错误处理方法、技巧、管理策略相关内容,阅读专题下面的文章了解更多详细内容。

2

2026.02.06

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
最新Python教程 从入门到精通
最新Python教程 从入门到精通

共4课时 | 22.4万人学习

Django 教程
Django 教程

共28课时 | 4万人学习

SciPy 教程
SciPy 教程

共10课时 | 1.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号