我们日常接触到的图片格式,主要是 jpg 和 png,还有动图 gif 。但如果你使用过不同的编辑器,那么很可能遇到过一些「奇怪」的图片格式。
例如 Ulysses 里面的 tiff,Bear 里面的 heic ,以及 theBrain 里的 webp 。我并不是说这几个格式只出现在上述笔记应用里,而是它们会保持这些格式。
这些扩展名的文件,都是啥东西?
其实,它们也是普遍应用的图片格式。只不过,有些其他笔记工具或编辑器在渲染这些图片的时候,会出问题。
例如 Roam Research ,渲染起来 tiff 或者 heic 图片,会无法正常显示。
所以,如果你经常需要用到 Markdown 格式写作内容,希望自己用到的图片,可以在本地和图床间快捷搬运、渲染,乃至于最终的各种呈现过程(自己浏览、Web 分享给他人,或者发布)都顺滑无碍,那么建议你还是把它们转换到 jpg, png, gif 等格式。
图片转换的方法多种多样,很多网站提供在线转换服务。
对于偶尔的一两幅图片,这种方法省心省力。无需本地安装任何工具,也不用熟悉具体操作命令。但是如果你转换图片是一个日常工作流程,每天都可能转换若干张图片,这种方法就过于琐碎了。很可能你因为嫌麻烦,导致记笔记和写作的积极性下降。
怎么办呢?
我们可以调用一款堪称神奇的免费图片转换工具,叫做 ImageMagick 。这是它目前可以支持的图片格式,翻动一下就会让人觉得眼花缭乱。
在绝大部分格式之间,ImageMagick 都是支持双向互转的。不过这事儿咱们不必过于理想化 —— 你把一副动图转成了静态图片容易,再试图从静态图片转回动图就不行了。这就好像你能在几分钟内把生鸡蛋煮熟,但是想把熟鸡蛋变回生鸡蛋,就变成前沿科技了。
ImageMagick 转换图片格式的方法,是在命令行下面执行语句。例如 heic 到 jpg,可以这么写:
代码语言:javascript复制magick "input.heic" "output.jpg"
就是这么简单一条命令,heic 格式的图片,就变成了我们熟悉的 jpg。
默认的情况下,图片的大小、分辨率等细节都基本保持一致。但是转换了的 jpg 文件,会比原始的 heic 大一些。也难怪有些应用会更愿意使用 heic ,因为体积小,省空间。
命令行方式的好处,在于你可以批量执行操作。甚至可以加入一些判断语句。
例如这是我写的一个脚本。通过语句自动判断图片格式是否为常见类型,并且把非常见类型一律转成 jpg 。
代码语言:javascript复制def convert_uncommon_img_types(link):
common_img_types = ['.jpg', '.jpeg', '.png', '.gif', '.JPG', '.JPEG', '.svg', '.PNG', '.GIF']
link_suffix = link.suffix
for img_type in common_img_types:
if link_suffix==img_type:
return link
output_path = Path(image_type_converted_dir)
if not output_path.exists():
output_path.mkdir()
new_suffix = '.jpg'
new_link = output_path / Path(str(link.name).replace(link_suffix, new_suffix))
cmd = f'magick "{link}" "{new_link}"'
os.system(cmd)
return new_link
我还可以更进一步,把这个脚本放到 Keyboard Maestro 里面,绑定一个快捷键。这样不管我在写作过程中,图片是从什么地方拷贝、脱拽来的,都是一键进行格式化处理,把弄好的结果回传给我。
这样一来,是不是效率显著提升,工作也变得轻松一些了?
如果你觉得 ImageMagick 只有这点儿本事,那么开发者会觉得很委屈。
根据官网介绍,它可以完成以下操作:
ImageMagick 可以调整大小、翻转、镜像、旋转、扭曲、剪切和转换图像,调整图像颜色,应用各种特殊效果,或绘制文本、线条、多边形、椭圆和贝塞尔曲线。
说白了,这就是个图片处理领域的「瑞士军刀」。官网提供了很多样例,你可以参考,来满足自己图片处理的需求。
样例图文并茂,还是很详细的。
只不过,还是回到咱们的软件应用使用原则「重器轻用」(善用佳软张玉新老师提出),这简单的一行命令,可以帮助咱们方便处理图像格式转化。如果你没有大批量图片调色、加文字说明、调整大小等等需求,就了解这一行命令,足够了。千万不用对着 ImageMagick 的帮助文档运气,试图把它从头到尾啃下来。没必要。
小结一下,有些不太常见的图片格式,目前还无法得到全部应用的普遍支持,所以我们需要进行转换。转换的方式里,我最喜欢 ImageMagick ,因为简单,而且可以嵌入自己的自动化工作流程,降低操作的复杂度和成本。
希望这个分享,对你处理自己的图片格式问题,能有帮助。你是否知道其他好用的图片处理应用?欢迎留言,咱们一起交流讨论。