LeanImg

我可以在浏览器标签中批量转换多少张图片?

浏览器批量转换的真实成本:每次运行 10 个文件和 50 MB,每次一个文件,AVIF 编码每个需要 10 秒。

一个包含 300 个文件的文件夹是大多数人所说的“批量转换图片”。浏览器标签实际上是如何处理这些的。LeanImg 的 converter 每批接受 10 个文件和 50 MB,并且一次处理一个文件,在处理下一个文件之前解码和重新编码每个文件。这是上限。这是使该工具值得打开的代价:你放在上面的任何东西都不会离开你的机器。

该领域的其他转换器会将你的文件上传到服务器,在那里进行转换,并承诺在一两个小时内删除。这一个没有 API 路由和服务器操作,因此没有地方可以上传。解码和编码都在你的标签中进行,通过 createImageBitmap 和 WASM 编解码器。你的 CPU 是整个预算。

我一次可以转换多少个文件?

十个,在四个支持批量的工具中:compressresizeconvertremove background。这些工具也将批量限制在所有文件总共 50 MB。三个工具仅处理一张图片。裁剪工具和图标生成器将该单个文件限制为 10 MB,而放大器允许 50 MB,因为在小源上运行 4x 模型仍然会生成一个大 PNG。

工具每批文件大小限制
/compress-image1050 MB 总计
/resize-image1050 MB 总计
/convert1050 MB 总计
/remove-background1050 MB 总计
/crop-image110 MB
/icon-generator110 MB
/upscale-image150 MB

批量中的每个文件会发生什么?

循环是顺序的。每个文件被解码为原始 RGBA 像素,然后重新编码为目标格式,循环在开始下一个之前等待一个结果。如果文件解码失败,则标记为错误,运行继续,因此在十个文件中有一个损坏的 PNG 不会让你失去其他九个。压缩器将其工作推入一个单独的 Web Worker,因此页面在处理时保持响应;转换器在主线程上使用 OffscreenCanvas 完成其工作。两者都不会在你的核心之间分散批量。

每个文件的三种行为会让人感到困惑。压缩会去除所有元数据,包括 EXIF、GPS、ICC 配置文件和嵌入缩略图,尽管方向信息仍然保留。转换为 JPG 或 PDF 时,透明度会合并到白色中,因为这两种格式都不支持 alpha 通道。动画 GIF 会在第一帧之后丢失每一帧,因为没有任何编码器在转换路径上写入动画。

我实际上可以批量转换哪些格式?

注册表包含 11 种格式。其中十种可以解码:JPG、PNG、WebP、AVIF、GIF、HEIC、SVG、TIFF、BMP 和 ICO。只有五种可以编码:JPG、PNG、WebP、AVIF 和 PDF。因此 HEIC、SVG、TIFF、BMP、GIF 和 ICO 是单向门,这涵盖了我们发布的 24 对格式。将一文件夹的 iPhone HEIC 批量转换为 JPG,每个文件都会转换,这就是 修复 Windows PC 显示这些照片为损坏文件的方法。请求反向转换时,没有编码器可以提供。

PDF 是浏览器批量转换最明显的地方。每张图片都变成自己单独的单页 PDF。这是设计使然,管道中没有合并步骤,因此十张图片会生成十个 PDF,而不是一个十页的文档。页面图像通过浏览器自己的画布编码器以质量 92 嵌入为 JPEG,这就是为什么 538.6 KB 的 JPG 在我们的运行中变成了 674.2 KB 的 PDF。如果你需要一个包含 40 页的文件,这不是你的工具。

两个 JPG 文件转换为两个单独的 PDF 文件,每个文件都有自己的下载按钮
两个 JPG 文件进,两个 PDF 文件出。转换器从不将批量合并为一个文档。

为什么我选择 AVIF 时批量转换会变得缓慢?

因为 AVIF 编码成本高。我们以三种方式运行相同的源,texture.jpg,3840x2160 和 538.6 KB,并计时每次编码。

目标Slider 80Slider 63编码速度
JPEG286.1 KB未测量瞬时
WebP290.3 KB200.6 KB瞬时
AVIF312.7 KB186.9 KB10 到 11 秒

slider-80 列在你知道每个编码器对该数字的含义之前是反向读取的。对于 JPEG 源,我们的 JPEG 路径将你的滑块乘以它从源的量化表中读取的质量,因此 60 质量的源在 slider 80 下编码为 48。WebP 和 AVIF 字面上接受 80。AVIF 的智能默认值是 63,在 63 时它在大小上胜出:186.9 KB 对比 WebP 的 200.6 KB。你付出的代价是时间。十个 AVIF 文件的顺序批量转换就像喝咖啡一样,而对于 AVIF,没有像 JPG、PNG 和 WebP 那样的画布回退,因此 WASM 编码器失败意味着该文件出错。在提交整个批量之前,请检查 AVIF 浏览器支持,并在决定格式之前阅读 为什么匹配输出大小胜过匹配滑块数字

什么时候桌面工具是正确的答案?

一旦工作量超过十个文件,或者你需要这些引擎无法完成的东西。ImageMagick 的 mogrify 遍历嵌套文件夹树,充分利用你拥有的每个核心并在原地写入结果,而单线程标签无法接近。MozJPEG 是我们编译到 WASM 的相同编码器,作为本地二进制文件运行得更快。桌面工具还可以将多张图片合并为一个多页 PDF,保持 EXIF 和 ICC 通过整个过程,监视文件夹以获取新文件,并让你输入确切的像素尺寸。我们的 cropper 有八个纵横比预设和一个自定义比例字段,根本没有像素宽度和高度输入,并且以硬编码质量 92 重新编码有损格式。

单文件工具保持单文件的原因不会很快改变。upscaler 运行 Real-ESRGAN,并接受 32 兆像素的输入,使用 WebGPU,未使用时大约 1.1 MP。background remover 在首次运行时下载一个 IS-Net 模型,并严格一个接一个地处理其十个文件。icon generator 接受一张图片并从中写入七个文件,包括一个包含 16、32 和 48 像素版本的 favicon.ico。

那么浏览器批量转换有什么用?

在列出之前的十张产品照片。文档页面的截图文件夹。任何你不能交给陌生人服务器的图片:护照、医疗扫描、签署的合同、受 NDA 保护的客户工作。最后一组就是我们以这种方式构建它的原因,隐私页面 用更少的字说了这一点。当批量完成时,下载所有构建会在标签中生成一个 ZIP 并交给你,不涉及回程。

在围绕它计划工作流程之前测试其形状。打开 /convert,放入十个 JPG,点击 WebP,观察每个文件卡片逐个填充。如果这对你来说完成得足够快,那么 10 个文件的上限就是学术性的。如果你正在将扫描转换为 PDF,请先阅读 JPG 在 PDF 中实际变成什么,因为每一页的输出为名义上的 54 DPI。