Сколько изображений я могу пакетно конвертировать в вкладке браузера?
Что на самом деле стоит пакетная обработка в браузере: 10 файлов и 50 МБ за раз, один файл за раз, и кодирование AVIF, которое занимает по 10 секунд на каждое.
Папка с 300 файлами — это то, что большинство людей подразумевает под "пакетной конвертацией изображений". Вот что на самом деле делает вкладка браузера с этим. Конвертер LeanImg принимает 10 файлов и 50 МБ за пакет и обрабатывает их по одному, декодируя и перекодируя каждый файл перед тем, как перейти к следующему. Это предел. Это цена того, что делает инструмент стоящим открытия: ничего, что вы на него сбрасываете, никогда не покинет ваш компьютер.
Каждый другой конвертер в этой области отправляет ваши файлы на сервер, конвертирует их там и обещает удалить через час или два. Этот не имеет API маршрутов и серверных действий, так что загружать некуда. Декодирование и кодирование происходят в вашей вкладке, через createImageBitmap и кодеки WASM. Ваш ЦПУ — это весь бюджет.
Сколько файлов я могу конвертировать одновременно?
Десять, на четырех инструментах, которые принимают пакет: сжать, изменить размер, конвертировать и удалить фон. Каждый из них также ограничивает пакет 50 МБ в общей сложности по всем файлам. Три инструмента принимают ровно одно изображение. Обрезчик и генератор иконок ограничивают этот единственный файл 10 МБ, а увеличиватель позволяет 50 МБ, потому что 4-кратная модель, запущенная на маленьком источнике, все равно производит большой PNG.
| Инструмент | Файлы за пакет | Лимит размера |
|---|---|---|
| /compress-image | 10 | 50 МБ всего |
| /resize-image | 10 | 50 МБ всего |
| /convert | 10 | 50 МБ всего |
| /remove-background | 10 | 50 МБ всего |
| /crop-image | 1 | 10 МБ |
| /icon-generator | 1 | 10 МБ |
| /upscale-image | 1 | 50 МБ |
Что происходит с каждым файлом в пакете?
Цикл последовательный. Каждый файл декодируется в необработанные пиксели RGBA, затем перекодируется в целевой формат, и цикл ждет одного результата перед началом следующего. Если файл не удается декодировать, он помечается ошибкой, и выполнение продолжается, так что один поврежденный PNG в наборе из десяти не стоит вам остальных девяти. Компрессор отправляет свою работу в один Web Worker, чтобы страница оставалась отзывчивой, пока он работает; конвертер выполняет свою работу в основном потоке с помощью OffscreenCanvas. Ни один из них не распределяет пакет по вашим ядрам.
Три поведения на файл сбивают людей с толку. Сжатие удаляет все метаданные, включая EXIF, GPS, ICC профиль и встроенный миниатюру, хотя ориентация сохраняется. Конвертация в JPG или PDF композитирует прозрачность на белом фоне, поскольку ни один из форматов не поддерживает альфа-канал. Анимированный GIF теряет каждый кадр после первого, потому что ни один кодировщик на пути конвертации не записывает анимацию.
Какие конверсии я действительно могу пакетно обрабатывать?
Реестр содержит 11 форматов. Десять из них декодируют: JPG, PNG, WebP, AVIF, GIF, HEIC, SVG, TIFF, BMP и ICO. Только пять кодируют: JPG, PNG, WebP, AVIF и PDF. Таким образом, HEIC, SVG, TIFF, BMP, GIF и ICO — это односторонние двери, что охватывает 24 пары, которые мы публикуем. Пакетная обработка папки HEIC с iPhone в JPG и каждый файл конвертируется, что является решением для ПК с Windows, который показывает эти фотографии как поврежденные файлы. Запросите обратное, и кодировщика, который мог бы вам это дать, нет.
PDF — это место, где форма пакетной обработки в браузере проявляется наиболее четко. Каждое изображение становится своим собственным одностраничным PDF. Это сделано намеренно, и в процессе нет этапа объединения, так что десять изображений дают вам десять PDF, а не десятистраничный документ. Изображение страницы встраивается как JPEG с качеством 92 через собственный кодировщик канваса браузера, и именно поэтому JPG размером 538,6 КБ вышел как PDF размером 674,2 КБ в нашем запуске. Если вам нужен один файл с 40 страницами, это не ваш инструмент.

Почему мой пакет тормозит, когда я выбираю AVIF?
Потому что кодирование AVIF дорогое. Мы протестировали один и тот же источник тремя способами, texture.jpg размером 3840x2160 и 538,6 КБ, и замерили каждое кодирование.
| Цель | Слайдер 80 | Слайдер 63 | Скорость кодирования |
|---|---|---|---|
| JPEG | 286,1 КБ | не измерено | мгновенно |
| WebP | 290,3 КБ | 200,6 КБ | мгновенно |
| AVIF | 312,7 КБ | 186,9 КБ | 10 до 11 секунд |
Столбец слайдера-80 читается в обратном порядке, пока вы не поймете, что это число значит для каждого кодировщика. Для источника JPEG наш путь JPEG умножает ваш слайдер на качество, которое он считывает из таблиц квантования источника, так что источник с качеством 60 при слайдере 80 кодируется на 48. WebP и AVIF воспринимают 80 буквально. Умный стандарт AVIF — 63, и на 63 он выигрывает по размеру: 186,9 КБ против 200,6 КБ WebP. Вы платите временем. Десять файлов AVIF в последовательном пакете — это перерыв на кофе, и для AVIF нет резервного варианта канваса, как для JPG, PNG и WebP, так что сбой кодировщика WASM означает, что этот файл выдает ошибку. Проверьте поддержку браузеров AVIF перед тем, как вы решите полностью обработать пакет, и прочитайте почему совпадение размеров выходных файлов лучше, чем совпадение чисел слайдера перед тем, как вообще решите формат.
Когда настольный инструмент — это правильный ответ?
Как только работа становится больше десяти файлов или как только вам нужно что-то, что эти движки не делают. ImageMagick's mogrify проходит по вложенному дереву папок, использует все ваши ядра и записывает результаты на месте, что однопоточная вкладка не может сделать. MozJPEG — это тот же кодировщик, который мы компилируем в WASM, и он работает намного быстрее как нативный бинарный файл. Настольные инструменты также объединяют множество изображений в один многостраничный PDF, сохраняют EXIF и ICC через полный цикл, следят за папкой на предмет новых поступлений и позволяют вам вводить точные размеры в пикселях. Наш обрезчик имеет восемь предустановок соотношения сторон и поле для пользовательского соотношения, без ввода ширины и высоты в пикселях, и перекодирует сжатые форматы с жестко заданным качеством 92.
Инструменты для обработки одного файла остаются однопоточными по причинам, которые не изменятся в ближайшее время. Увеличиватель запускает Real-ESRGAN и принимает 32 мегапикселя входных данных с WebGPU, примерно 1,1 МП без него. Удалитель фона загружает модель IS-Net при первом запуске и обрабатывает свои десять файлов строго один за другим. Генератор иконок принимает одно изображение и создает семь файлов из него, включая favicon.ico, который содержит версии размером 16, 32 и 48 пикселей.
Так для чего хороша пакетная обработка в браузере?
Десять фотографий продукта перед размещением. Папка скриншотов для страницы документа. Любое изображение, которое вы не можете передать серверу незнакомца: паспорта, медицинские снимки, подписанные контракты, работа с клиентами по NDA. Эта последняя группа — причина, по которой мы построили это таким образом, и страница конфиденциальности говорит об этом меньшими словами. Когда пакет завершается, Download все создает ZIP в вкладке и передает его вам, без дополнительных действий.
Проверьте его форму, прежде чем планировать рабочий процесс вокруг него. Откройте /convert, сбросьте десять JPG, нажмите WebP и смотрите, как карточки по файлам заполняются одна за другой. Если это завершается достаточно быстро для вас, лимит в 10 файлов становится академическим. Если вы конвертируете сканы в PDF, сначала прочитайте что JPG на самом деле становится внутри PDF, потому что каждая страница выходит с номинальным 54 DPI.