前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何用 ImageMagick 转换图片格式?

如何用 ImageMagick 转换图片格式?

作者头像
王树义
发布2022-08-31 08:31:41
1.6K0
发布2022-08-31 08:31:41
举报
文章被收录于专栏:玉树芝兰玉树芝兰

我们日常接触到的图片格式,主要是 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 ,因为简单,而且可以嵌入自己的自动化工作流程,降低操作的复杂度和成本。

希望这个分享,对你处理自己的图片格式问题,能有帮助。你是否知道其他好用的图片处理应用?欢迎留言,咱们一起交流讨论。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-13,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 玉树芝兰 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档