Matrix 精选
Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。
文章代表作者个人观点,少数派仅对标题和排版略作修改。
工作时我常常需要把一个图片、视频或文本文件转换成其他格式,或者需要把一大堆同样后缀名的文件转换成其他格式,这时,再打开一个软件要么有点得不偿失,要么一个个点按非常繁琐。几番寻找,我发现了下面这些全平台命令行工具,安装后,只要一行命令,就能搞定简单的文件格式转换。
图片:ImageMagick
ImageMagick 是一款几乎全能的图片处理套件,它能完成图片的创建、编辑、对比工作,当然,转换格式也不在话下。软件开源、免费,并且全平台覆盖,在官方网站下载安装对应版本后,在终端输入magick
有返回值说明安装成功。推荐使用软件包管理器安装:
# macOS 需要安装 Ghostscript fonts
$ brew install ghostscript
$ brew install imagemagick
# Windows 两条命令二选一,需要安装对应的包管理器
$ scoop install imagemagick
$ choco install imagemagick
该工具可以转换所有常用图片格式,例如 PNG、JPG、ICO、SVG。命令行使用非常简单,格式是magick 待转换图片路径 输出图片路径.后缀名
,举例来说,将 A.png,转换成后缀为 jpg 的文件,在文件所在目录打开终端,命令为:
$ magick A.png A.jpg
对于 Windows 用户,可以使用clipboard:
变量表示剪贴版,下面这个命令表示将剪贴板中的图片输出为 B.jpg:
$ magick clipboard: B.jpg #执行此命令请确认剪贴板首位是图片
你也可以使用一些参数对图片进行处理,例如,-resize 表示缩放,-quality 表示输出质量,下面这行命令将 A.jpg 缩小 50%,并以 50% 的质量输出,对图片进行了压缩;
$ magick A.jpg -resize 50% -quality 50 B.jpg
音频、视频:FFmpeg
鼎鼎大名的 FFmpeg 是许多视频播放、剪辑软件的基石。软件本身也能完成视频的录制、转换、串流等一系列工作,你可以从 官方网站 下载安装包,但同样推荐使用软件包管理器安装,只需要把前文 install 后面的参数改成 ffmpeg 即可。
下面这行命令把 A.mkv 转换成为了 A.mp4,这样才能拖进某些剪辑软件的媒体库进行剪辑:
$ ffmpeg -i A.mkv A.mp4
「-i」后面输入待转换文件,最后填上输出文件名称、格式即可。除了视频格式以及音频格式的的转换,你还可以将视频文件转换为音频文件,这样就可以不用在剪辑软件中「分离音频轨」然后单独保存了,在处理一些 MV 或者语言类节目时非常实用:
$ ffmpeg -i .\Revenge.webm demo.mp3 #将 Revenge.webm 这个 MV 转换成了 mp3 歌曲
文本:Pandoc
想必你可能在其他文本处理软件中看到过它的身影,这是一款专门转换文本格式的命令行工具。支持的格式非常之多,常用的有 txt、docx、html、pdf、md、pptx,官方还画了一个巨大网状图详细展示了其所有支持的格式。下载地址在这里。
转换命令为pandoc 待转换文件 -o 输出文件.后缀名
,下面两行命令,将 sspai.md 转换成了 word 文档,又把 word 文档转换成了网页文件:
$ pandoc sspai.md -o sspai.docx $ pandoc sspai.docx -o sspai.html
转换效果如下,右边是转换后的 Word 文档:
软件还支持读取网页并转换成其他格式,例如,将少数派编辑器使用指南这篇文章转换为本地的 sspai.md,会保留页眉页脚等信息,对于下载一些结构简单的博客十分有用:
$ pandoc https://sspai.com/post/37790 -o author.md
PDF 格式处理需要 LaTeX 辅助,可以按需求下载。但不建议使用 Pandoc 进行 PDF 转换,体验不太好。简单需求使用电脑自带的打印功能即可。
结语
此外,这些工具都支持批量文件处理,可以使用一些通配符(*,%d 等)表示待转换文件,这样就能快速完成一些重复的工作。
文本介绍的是这些软件初级的用法,对于轻量使用已经足够了,复杂需求依靠有 UI 的专业软件会更好,他们可调试,可实时预览效果,体验更佳。如果想要学习进阶内容,可以翻看官方文档:
- imagemagick:https://imagemagick.org/script/command-line-processing.php
- ffmpeg:https://ffmpeg.org/ffmpeg.html
- Pandoc:https://pandoc.org/MANUAL.html。