WebConverter工作原理
每次转换都在您的浏览器中运行。没有文件会被上传。以下是转换文件时确切发生的过程。
简要说明
当您将文件拖放到WebConverter时,它从磁盘读入浏览器内存,由编译为WebAssembly的C++代码处理,然后作为新文件保存回磁盘。整个流程在您的CPU上运行 — 没有任何数据离开您的设备。
您可以验证:打开浏览器的开发者工具 → 网络标签页,然后转换一个文件。您将看到零个携带文件数据的外发请求。
图像转换
图像转换由Magnum C++图形库驱动,该库使用Emscripten编译为WebAssembly。Magnum提供经过实战检验的解码器和编码器,支持广泛的格式 — 与原生桌面应用程序中使用的相同代码。
转换流程:
- 使用File API将文件读入
ArrayBuffer - 缓冲区传递给四个并行Web Worker之一
- 在Worker中,WASM模块解码源格式并重新编码为目标格式
- 结果传回主线程并触发下载
四个Worker并行运行,因此数十个文件的批量转换可以快速完成而不会冻结页面。
支持的图像格式
- 输入(14种格式): BMP, DDS, GIF, HDR, ICO, JPEG, KTX, KTX2, PGM, PIC, PNG, PPM, PSD, TGA, WebP
- 输出(8种格式): PNG, JPEG, BMP, TGA, HDR, EXR, KTX2, WebP
音频转换
音频和视频转音频使用浏览器内置的AudioContext.decodeAudioData()解码源文件,然后在Web Worker中编码为目标格式。
- MP3和OGG编码使用wasm-media-encoders — LAME(MP3)和libvorbis(OGG)的WebAssembly构建
- WAV编码是纯JavaScript — RIFF头加16位PCM交错采样
- FLAC编码使用浏览器原生
AudioEncoderAPI(Chrome 107+),不支持的浏览器回退到WAV
输入格式包括MP4、M4A、WAV、OGG、FLAC、WebM和MP3 — 浏览器能原生解码的任何容器。
PDF转换
图像转PDF使用pdf-lib,一个在浏览器中创建和操作PDF文档的纯JavaScript PDF库。每个图像通过Canvas API解码,重新编码为JPEG,并作为完整页面嵌入PDF。
启用OCR时,Tesseract.js — 领先的开源OCR引擎 — 分析每个图像中的文本,并将其作为不可见的可选择层放置在PDF中。OCR模型(约10MB)按需下载并由浏览器缓存。
为什么选择客户端?
隐私
您的文件永远不会离开设备。没有可被黑客攻击的服务器,没有可被侵入的数据库,没有需要信任的"文件30分钟后删除"的承诺。了解更多关于服务器转换器的隐私风险。
速度
服务器工具需要上传文件、排队等待和下载结果。WebConverter跳过所有三步。50MB图像在一秒内完成转换。
无限制
因为没有需要付费的服务器基础设施,所以没有文件大小限制,没有每日转换配额,没有"升级到专业版"的门槛。
离线工作
WebConverter可以安装为渐进式Web应用。安装后无需互联网连接即可工作 — 可以在飞机上、偏远地区或网络中断时转换文件。
更低的环境影响
无数据传输意味着无网络能耗。无服务器处理意味着无数据中心电力。了解服务器转换器的隐藏能源成本。
开源
WebConverter是免费的开源软件。您可以在GitLab上查看代码、报告问题和贡献。