← Вернуться в блог

ImgZilla 1.3 официально выпущен

ImgZilla 1.3 официально выпущен: инструмент для сжатия изображений без потерь «на месте», почему это заняло так много времени. ImgZilla теперь доступен в Mac App Store. Его основная функция проста: уменьшить размер изображений на вашем Mac без изменения имени файла, пути или формата; оригиналы по умолчанию перемещаются в корзину, и их можно восстановить в любое время.

Поделиться

ImgZilla 1.3 официально выпущен: инструмент для «сжатия изображений без потерь на месте» — почему это заняло так много времени

ImgZilla теперь доступен в Mac App Store.

Его основная функция проста: уменьшить размер изображений на вашем Mac, не изменяя имена файлов, пути или форматы; оригиналы по умолчанию перемещаются в корзину и могут быть восстановлены в любое время.

Все эти операции выполняются на вашем Mac, без подключения к интернету. Изображения не покидают ваш компьютер и не загружаются на какие-либо серверы — конфиденциальность и безопасность данных заложены в основу с самого начала.

Эта функция может показаться простой, но мы многократно тестировали, переделывали и переписывали её заново. Эта статья — не о том, «какие функции мы сделали», а о том, с какими конкретными проблемами в реальных сценариях мы столкнулись и что в итоге изменили.


«Перезапись на месте» — к этому нельзя относиться легкомысленно

Большинство инструментов сжатия изображений сохраняют результат как photo-min.jpg — это безопасно, но перекладывает проблемы на вас: имена файлов меняются, ссылки в каталогах товаров, пути в шаблонах веб-страниц, сортировка в архивных папках — всё это придётся обновлять.

ImgZilla пошла другим путём: результат сжатия записывается обратно в исходный путь, с тем же именем и форматом. JPG остаётся JPG, и вам не нужно изменять ни одной ссылки.

Плата за это: инструмент работает с исходными файлами пользователя. Если что-то пойдёт не так, потеряется не кэш, а снимки, снятые за целый день, или коллекции, собиравшиеся годами.

Поэтому основные усилия были потрачены не на само сжатие — для этого достаточно зрелых кодировщиков — а на защиту от «на всякий случай». Все перечисленные ниже улучшения были выявлены в ходе тестирования в реальных условиях.


Что было изменено в процессе тестирования

1. Стратегия защиты оригиналов — переделали полностью

Изначально планировалось копировать оригиналы в специальную резервную папку. Логика была верной, но на практике это создавало неудобства: резервная папка незаметно росла, и через несколько месяцев пользователь обнаруживал, что на диске появилась полная копия всех файлов, хотя изначально целью была именно экономия места.

Теперь используется подход с приоритетом корзины: при успешном сжатии оригинал перемещается в системную корзину, а сжатая версия записывается на его место.

Восстановление теперь выполняется знакомым каждому пользователю Mac способом — открыть корзину, щёлкнуть правой кнопкой мыши и выбрать «Вернуть обратно». Не нужно изучать новые концепции, и не появляется постоянно растущей скрытой папки. Этот параметр включён по умолчанию в настройках; при отключении файлы будут перезаписываться без возможности восстановления, поэтому вы увидите предупреждение с подтверждением.

2. Диалоговое окно для внешних дисков — появилось после требований тестирования

При тестировании на портативных дисках, NAS и сетевых томах мы столкнулись с распространённой проблемой macOS: на таких устройствах часто невозможно переместить файлы в корзину.

Первая версия просто выдавала ошибку и пропускала файл — в результате пользователь перетаскивал целую папку, и ничего не происходило.

Теперь сжатие приостанавливается, и появляется диалоговое окно с выбором:

  • Выбрать резервную папку: оригинал копируется туда, а затем перезаписывается;
  • Отказаться от резервного копирования: после двойного подтверждения файл перезаписывается без сохранения копии;
  • Закрыть окно: задача полностью отменяется.

Ещё одна деталь, добавленная в ходе тестирования: ваш выбор применяется ко всем оставшимся файлам в текущей задаче, иначе для 500 изображений окно появлялось бы 500 раз — так было в первой версии, и мы сами не выдержали.

Выбранная резервная папка запоминается как расположение по умолчанию (в ~/Library/Application Support/ImgZilla Backups/ создаются подпапки с временными метками) и используется при последующих подобных ситуациях.

3. «Уже минимизирован»: лучше ничего не делать

Некоторые изображения уже были сжаты ранее (другими инструментами или самой ImgZilla), и повторное сжатие обычно даёт лишь доли процента уменьшения размера. Мы ввели жёсткое правило: если коэффициент сжатия меньше 0,4%, файл не изменяется, помечается как «Уже минимизирован», оригинал сохраняется как есть, и бесплатный лимит не расходуется.

Это правило может сделать статистику менее впечатляющей — если перетащить целый альбом уже сжатых изображений, большинство будет отмечено как «Уже минимизирован». Но мы считаем, что инструмент, который ради демонстрации результатов сжимает ваши файлы повторно, не заслуживает доступа к исходникам.

4. Когда расширения обманывают

В наших тестовых образцах встречалось немало файлов с расширением .png, которые на самом деле были JPEG — такие файлы попадаются гораздо чаще, чем можно подумать, особенно при скачивании из разных источников.

Теперь ImgZilla считывает магические байты в заголовке файла, чтобы определить истинный формат, и выбирает соответствующий кодировщик. Даже если расширение указано неверно, обработка будет корректной.

5. Последовательная обработка вместо параллельной

Последовательное сжатие по одному файлу может показаться «недостаточно быстрым». Мы пробовали параллельную обработку, скорость действительно возрастала, но при массовых задачах отслеживание ошибок становилось сложным — особенно учитывая, что инструмент перезаписывает исходные файлы.

Стабильность важнее пиковой скорости, поэтому мы оставили последовательную обработку. Стоит уточнить, что последовательность касается самих задач, а сжатие каждого изображения внутри кодировщика использует многопоточность, так что многоядерные процессоры не простаивают. В качестве компенсации на интерфейсе мы сделали следующее: текущий обрабатываемый элемент автоматически прокручивается в видимую область, при наведении курсора автопрокрутка приостанавливается, в нижней части в реальном времени отображается количество обработанных файлов и сэкономленный объём, а по завершении отправляется системное уведомление.

6. Когда заканчивается бесплатный лимит, задача «приостанавливается», а не «прерывается»

В бесплатной версии можно сжимать до 10 изображений в день, счётчик сбрасывается автоматически. При тестировании мы поняли, что момент остановки имеет огромное значение для впечатления: если при перетаскивании 200 изображений сжатие останавливается после 10-го с ошибкой, и пользователю приходится заново добавлять все файлы — такое сообщение становится просто раздражающим.

Теперь при исчерпании лимита задача приостанавливается на месте, и появляется панель покупки. После совершения покупки сжатие продолжается с того же места, файлы не нужно добавлять повторно. Кроме того, лимит расходуется только при успешном сжатии — ошибки и «Уже минимизирован» не учитываются.

7. 19 языковых опций и менее заметное завершение

Интерфейс полностью поддерживает 19 языков (включая «Как в системе», упрощённый и традиционный китайский, английский, японский, корейский, а также основные европейские языки, арабский, вьетнамский и другие). Язык можно переключить в настройках в любой момент, изменения вступают в силу мгновенно, без перезапуска.

Эта работа оказалась гораздо более трудоёмкой, чем ожидалось, и стала одной из причин задержки релиза. Но для инструмента, представленного в глобальном App Store, возможность видеть интерфейс на родном языке — это элементарное уважение к пользователю.


О качестве изображений: не верьте нам, проверьте сами

Сложнее всего в сжатии — завоевать доверие. Поэтому сразу скажем прямо:

  • PNG (oxipng) и SVG (svgcleaner) — это действительно сжатие без потерь, пиксели не изменяются;
  • JPEG, WebP, AVIF, HEIC/HEIF, GIF по своей сути являются сжатием с потерями, но параметры подобраны так, чтобы результат был визуально неотличим от оригинала — человеческий глаз практически не замечает разницы, но это не «без потерь», и мы не смешиваем эти понятия.

Более того, вам не нужно принимать это на веру. В ImgZilla встроено окно сравнения изображений (⌘D): слева — до сжатия, справа — после, с разделительной линией, которую можно перетаскивать, и масштабированием для детального сравнения. Для каждого успешно сжатого изображения в списке можно открыть сравнение в один клик.

Если результат не устраивает — просто верните оригинал из корзины. Эта возможность всегда доступна.

Параметры сжатия фиксированы, ползунка качества в интерфейсе нет. Это осознанное решение: настройка требует понимания таблиц квантования, методов кодирования, параметра speed и других профессиональных понятий, а ошибка может привести либо к отсутствию сжатия, либо к размытию. Мы сделали эту работу за вас — для каждого формата параметры подбирались индивидуально, и при перетаскивании в программу и нажатии «Сжать» вы получаете оптимальный баланс для этого формата при текущих настройках.

Если вы привыкли самостоятельно настраивать параметры сжатия, всё равно рекомендуем сначала попробовать ImgZilla — параметры уже откалиброваны и, возможно, избавят вас от необходимости проб и ошибок.


Чего ImgZilla не делает

Не менее важные ограничения, чтобы вы не обнаружили их после загрузки:

  • Только для macOS (версия 12.3 и выше). Версий для Windows, iOS или веб-версии нет.
  • Не конвертирует форматы. JPG после сжатия останется JPG, а не станет WebP.
  • Не изменяет размеры. Не уменьшает разрешение и не обрезает.
  • Не гарантирует сжатие. Уже оптимизированные изображения могут не уменьшиться вообще, и тогда они честно будут помечены как «Уже минимизирован».
  • По умолчанию удаляет EXIF (включая GPS-координаты, что уменьшает размер файла и повышает конфиденциальность). Если вам нужно сохранить параметры съёмки, информацию об авторских правах и цветовые профили, включите опцию «Сохранять EXIF» в настройках вручную.

Ещё один момент, который стоит подчеркнуть отдельно: всё сжатие выполняется на вашем Mac локально. За исключением проверки покупок в App Store, ImgZilla не требует подключения к интернету, изображения не покидают ваш компьютер — никаких очередей, ограничений по количеству (кроме лимита бесплатной версии) и «загрузки на чужие серверы». Все кодировщики встроены в приложение как локальные статические библиотеки.


Можно начинать использовать

  • Бесплатная версия: 10 изображений в день, счётчик автоматически сбрасывается, без урезания функциональности.
  • Снятие ограничений: постоянная лицензия (единоразовая покупка, без ограничений по количеству) или ежемесячная подписка; цены зависят от региона вашего App Store. При смене компьютера или переустановке используйте кнопку «Восстановить покупки».

Рекомендуемый первый запуск: перетащите одно изображение, которое вам не очень важно, нажмите «Сжать», затем нажмите «Сравнить» и оцените качество своими глазами. После этого решите, доверять ли программе всю папку.

Именно так мы и хотим, чтобы этот инструмент использовали — сначала проверьте, потом доверяйте.

Если появятся вопросы или предложения, воспользуйтесь пунктом меню «Помощь → Обратная связь». Версия 1.3 — это стабильный выпуск, которому можно доверять, но она явно не станет последней.


ImgZilla 1.3 уже доступна в Mac App Store. Требуется macOS 12.3 или новее.

Загрузить сейчас -> App Store

Нужны изображения легче и быстрее?

Скачайте ImgZilla и сжимайте локально — изображения не покидают ваш Mac.