前不久,我遇到了一件令人头疼的事。我想把苹果手机上刚拍的几张 HEIC 格式照片,转成 JPG 发给设计做图。
本来想着多大点事,随便在网上搜个“在线格式转换”不就行了。结果,我错了。
第一家网站,上传完告诉我,普通用户只能转一张,想转第二张?请掏钱。第二家网站,满屏幕的无用内容,下载按钮我都找不到在哪,差点进到什么奇怪的页游里去。第三家,好不容易转好了,告诉我必须要注册登录才能下载。

那一刻,我是真的有点绷不住了。想简简单单转个文件,怎么就这么难?
一气之下,我关掉了所有网页,打开了 GitHub。然后,我就挖到了这个可以说是一劳永逸的神器——ConvertX。

说实话,看到它的第一眼,我就知道:嘿嘿,稳了。这是一个基于 Web 的、可以自己部署的在线文件转换工具。完全开源,属于典型的开源实战项目,零门槛使用,最重要的是,它没有任何乱七八糟的内容和限制。作者 C4illin 用 TypeScript、Bun 和 Elysia 写了这个项目,这些现代Node.js技术栈让工具主打一个快、准、稳。我连夜部署体验了一下,体验是真丝滑。
一、万物皆可转
很多在线转换工具,要么只能转图片,要么只能转文档。但 ConvertX 有点离谱。它支持超过一千种不同的格式。真的,你没看错,上千种。

我大概看了一下它的底层支持,简直就是把开源界最强的几个转换引擎全给缝进去了。转矢量图,它用 Inkscape 和 Potrace。转文档,它有 LibreOffice 和 Pandoc,这就意味着 Word、Excel、PPT、PDF 甚至 Markdown 都能互转。转图片,ImageMagick 和 libvips 坐镇,几百种图片格式随便切。转视频,毫无疑问,还是那个居家必备之神器,FFmpeg。甚至,它连电子书(Calibre)、3D 模型(Assimp)、LaTeX 这些都能转。
我试了一下,把一张很复杂的 SVG 矢量图转成 PNG,拖进去,松手,几乎秒转。没有排队,没有“正在分析”,没有倒计时限制。干脆利落。
而且,它支持批量处理。你可以一次性把几十个文件扔进去,它就在后台吭哧吭哧给你全转好。

二、你的数据,是你自己的
除了格式支持多,ConvertX 最打动我的,还是安全。我们平时用在线转换工具,更多担心的,其实是隐私。你把合同、简历、私密照片传到别人的服务器上,谁知道对面会不会留底?
但 ConvertX 是支持数据自托管的。你可以把它部署在自己的 NAS 或私有服务器上。这就意味着,所有的文件处理数据,都任你掌控。

甚至,你还可以给它设置密码保护,或者开启多用户账户。如果是自己家里人或者小团队用,那简直再方便不过了。而且,作者还很贴心地做了一个自动清理功能。你可以设置每隔几个小时自动删除旧文件,既省空间,又保隐私。
三、部署,简单到哭
我知道,很多朋友一听到“自托管”、“私有服务器”,头都大了。觉得肯定要敲一堆代码,配一堆环境。但 ConvertX 的部署,真的非常简单。只要你有 Docker,基本就是一行命令的事,这正体现了现代后端与架构的便捷性。
docker run -p 3000:3000 -v ./data:/app/data ghcr.io/c4illin/convertx
跑起来之后,打开浏览器访问 localhost:3000 ,搞定。第一次打开,注册一个账号,你就拥有了一个属于自己的、功能强大的格式转换中心。再也不用去搜什么“在线 PDF 转 Word”,然后被一堆限制糊脸了。

写在最后
其实,ConvertX 这个项目,功能说起来很简单。它做的事情,无非就是把那些强大的命令行工具,比如 FFmpeg、Pandoc 这些,包上了一层好看又好用的外壳。但就是这么简单的东西,却让我觉得特别珍贵。
在这个万物皆可订阅、万物皆可变现的时代,还有开发者愿意做一个纯粹的工具,把它开源出来,让我们能体面地解决一个小问题。这本身,就是一种极客的浪漫。
工具,本该如此。它静静地躺在那,当你需要的时候,它帮你解决问题,然后事了拂衣去,深藏身与名。而不是像个乞丐一样,拽着你的衣角,非要薅你一把羊毛。
把对数据的掌控权,拿回自己手里。这种感觉,真的挺爽的。
GitHub 项目地址:https://github.com/C4illin/ConvertX
探索更多开发者资源和讨论,请访问 云栈社区 。