如何将ImageMagick截图、裁剪及拼接命令合并为单行命令?
将截图裁剪拼接合并为单条命令(Linux Raspbian)
你可以利用ImageMagick的管道和内置处理能力,把三个步骤合并为单条命令,还能避免生成临时文件。这里提供两种方案:
方案1:单次截图+内存内裁剪拼接(推荐)
这个方案只截取一次屏幕,在内存中完成裁剪和拼接,避免两次截图可能带来的屏幕内容差异:
import -window root png:- | convert - \( -clone 0 -crop '1280x400+0+0' \) \( -clone 0 -crop '1280x400+0+400' \) -delete 0 +append out.png
各部分说明:
import -window root png:-:捕获整个屏幕,将PNG数据输出到标准输出convert -:从标准输入读取完整屏幕图像\( -clone 0 -crop '1280x400+0+0' \):克隆原图像并裁剪出顶部区域\( -clone 0 -crop '1280x400+0+400' \):克隆原图像并裁剪出下方区域-delete 0:移除原图像(仅保留两个裁剪后的区域)+append:将两个区域水平并排拼接(垂直拼接用-append)out.png:指定最终输出文件
方案2:两次截图+进程替换拼接
如果不在意两次截图的内容差异,也可以用bash的进程替换功能,直接将两次裁剪的截图输出作为montage的输入:
montage -geometry 1280x400 <(import -window root -crop '1280x400+0+0' png:-) <(import -window root -crop '1280x400+0+400' png:-) out.png
这里<(command)会把命令的输出当作临时文件,供montage读取处理。
内容的提问来源于stack exchange,提问作者John U
相关产品推荐
相关产品推荐

