AudionAudion

Image Tools

github.com/Tensionix/image-tools ↗
Сборки этого проекта: версии, файлы и контрольные суммы.
Image Tools

Картинки бывают не только в JPG. Нужно извлечь изображения из PDF, а не только экспортировать страницы? Напечатать контактный лист с вашими параметрами? Изменить цветовой профиль или DPI под рулон бумаги? Точно подогнать тысячу файлов под загрузку аватара? Не проблема — и всё это пачками, без облаков и без установки.

3.0.0
9 загрузок с GitHub

Audion Image Tools

English · Руководство

Содержание

Портативный набор для работы с изображениями: конверсия, цвет, размеры, обрезка, водяные знаки, замощение, контактные листы, а ещё страницы PDF и картинки внутри DOCX, PPTX и PDF.

Зачем это сделано

Обработка картинок распадается на две разные задачи, и путать их дорого.

Первая — принять то, что дали. Съёмка приходит в RAW с фотоаппарата, скан в многокадровом TIFF, макет в PSD, снимок с телефона в HEIC. Программа должна открыть всё это, не спрашивая, откуда оно взялось.

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

Отсюда главное решение: вход широкий, выход узкий. На входе — максимум того, что вообще можно открыть. Глубокая и предсказуемая обработка сосредоточена вокруг JPG и PNG.

Принципы

Три уровня поддержки формата названы вслух. Не «поддерживается», а насколько.

уровеньчто это значитформаты
устойчивое ядровыверено, работает всегдаBMP, GIF, JPG, PNG, TGA, TIFF, WebP, AVIF
через адаптернужен дополнительный слойHEIC и HEIF, RAW с фотоаппаратов — CR2, CR3, DNG
как получитсяоткрывается не всегдаWMF, IFF, XIF; PSD — по мере сил

Что доступно на конкретной машине, программа говорит сама:

python system_core\main.py formats

Цвет выбирается, а не угадывается. Для экрана — sRGB, для печати — CMYK, и в каждом случае явно: встроенный путь без внешнего файла или конкретный профиль с диска. Программа не решает за вас, какой из двух CMYK-профилей вам нужен, — потому что это зависит от типографии, а не от файла.

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

Совместимость важнее компактности. WebP, AVIF и HEIF есть для лёгкой доставки, но JPG остаётся тем, что откроется везде, и заменять его на них по умолчанию программа не станет.

Что умеет

раздело чём
Конверсияв JPG, PNG, TIFF, WebP, AVIF, HEIF, HEIC; качество пресетами или точным значением
Цветнормализация с явным выбором профиля, оттенки серого, безопасная прозрачность для JPG
Размерыпод экран 1080p, 1440p, 2160p; под 16:9, A4, A3; под рулон по стороне в миллиметрах
Разрешениезапись выбранного разрешения без изменения пикселей
Обрезкаоднотонная рамка, умная обрезка белого фона, защитное поле в миллиметрах
Сборка PDFсразу после обрезки, со встроенным PNG или JPG
Водяной знакподпись в углу или диагональная защитная надпись с прозрачностью и цветом
Замощениеодна картинка на A5, A4, A3 или рулон — для наклеек, с полями и зазором в миллиметрах
Контактный листсетка миниатюр: типовые размеры или свой
Кадрымногокадровую картинку (TIFF, GIF, WebP, APNG) - в нумерованные кадры PNG с их паузами; кадры - обратно в GIF, WebP или APNG
Поворотисправление по метке ориентации; JPEG на 90, 180, 270 градусов без потерь (jpegtran)
Точный размервписать, дополнить полями, обрезать или растянуть до размера в пикселях; масштаб от 0,1 до 1000 %
Коррекцияуровни, яркость, контраст, гамма, насыщенность, ч/б, сепия, тонировка, инверсия, белое в прозрачное; PNG 256 цветов
МетаданныеEXIF и GPS убираются без перезаписи картинки, пиксели сверяются
ICOвсе размеры, которые просит Windows, в одном файле
Страницы PDFповернуть выбранные страницы, склеить, разделить по диапазонам, очистить метаданные; каждая копия проверяется, прежде чем назвать её готовой
Картинки в документахDOCX, PPTX, PDF: проверить DPI, поднять, уменьшить, уложить документ в размер в МБ, sRGB или CMYK, извлечь; маленький PNG - герб, значок - остаётся PNG
Предпросмотрдо, после, рядом - для операций, которые вслепую трудно настроить

Файлы PDF и картинки внутри документов программа читает и пишет библиотекой PyMuPDF, а она распространяется под GNU AGPL 3.0. Собственный код программы остаётся под Apache 2.0, но сборка целиком — программа вместе с PyMuPDF — идёт на условиях GNU AGPL 3.0; подробнее — в файле NOTICE.

Дальше


Техническая часть

Запуск

Start.exe                 окно
image_cli.cmd describe    все разделы, операции и поля в JSON
image_cli.cmd run --operation downscale_percent --set scale_mode=custom --set custom_percent=75

Окно - родное окно Windows (папка App\). Кнопка окна не делает ничего сверх консольной команды: она запускает image_cli.cmd с теми же настройками, и журнал при каждом запуске пишет эту строку. Коды выхода: 0 - готово, 1 - ошибка, 130 - остановлено, 2 - неверный вызов, и тогда ничего не запускается.

Пачку из многих файлов журнал показывает одной живой строкой: доля сделанного, сколько сделано и сколько всего, скорость, сколько осталось по времени и текущий файл - каждое своим цветом. Файл, с которым что-то пошло не так, остаётся в журнале строкой; все строки всех файлов лежат в журнале операции в logs\.

Значения по умолчанию

чтозначение
качество JPG83; пресеты 60, 75, 90; точное значение от 1 до 100
сжатие PNGв окне один пресет, в командной строке — параметр
качество контактного листа75 или 92
диагональная надписьоколо 60 % диагонали

Выбор цветового профиля

задачачто выбрать
экран, сайт, обычная передачаsRGB
печатьCMYK
нужен встроенный путь без внешнего файлаPillow sRGB
нужен явный внешний эталонпрофиль color.org
широкий классический печатный сценарийPhotoshop5DefaultCMYK.icc
покрытая печать по конкретному стандартуCoatedFOGRA39.icc

Папки

App\          окно и PowerShell, который программа несёт с собой
Start.exe     открывает окно
input\        быстрая папка источников
output\       результаты
logs\         журнал каждой операции, отчёты запусков
report\       отчёты проверок
workspace\    временная область
config\       операции, раскладка окна, умолчания, профили ICC
system_core\  движок и консольная команда
install\      портативное окружение
wheelhouse\   пакеты для установки без сети

Источник и назначение

ИСТОЧНИК и НАЗНАЧЕНИЕ - два рабочих пути, у каждого своя история и закреплённые пути; источником может быть и один файл. Под ними: СБРОСИТЬ возвращает оба пути на папки программы input и output (история очищается, закреплённые остаются, файлы не трогаются); СПИСОК пишет в журнал, что лежит в источнике; В ИСТОЧНИК делает результат источником следующей операции; ОЧИСТИТЬ удаляет содержимое источника, назначения или обоих - в Корзину, после вопроса, где названы пути. По-английски: SOURCE, TARGET, RESET, LIST, TO SOURCE, CLEAR.

Версии
3.0.0
Audion_Image_Tools_v3.0.0_Full.zip217 МБ15 октября 2026sha256GitHub ↗
Audion_Image_Tools_v3.0.0.zip73.4 МБ15 октября 2026sha256GitHub ↗
README_EN.dark.pdf96.0 КБ15 октября 2026GitHub ↗
README_EN.light-sand.pdf96.1 КБ15 октября 2026GitHub ↗
README_EN.md7.5 КБ15 октября 2026GitHub ↗
README_RU.dark.pdf108 КБ15 октября 2026GitHub ↗
README_RU.light-sand.pdf108 КБ15 октября 2026GitHub ↗
README_RU.md12.0 КБ15 октября 2026GitHub ↗
USER_GUIDE_EN.dark.pdf263 КБ15 октября 2026GitHub ↗
USER_GUIDE_EN.light-sand.pdf263 КБ15 октября 2026GitHub ↗
USER_GUIDE_EN.md18.4 КБ15 октября 2026GitHub ↗
USER_GUIDE_RU.dark.pdf283 КБ15 октября 2026GitHub ↗
USER_GUIDE_RU.light-sand.pdf283 КБ15 октября 2026GitHub ↗
USER_GUIDE_RU.md29.1 КБ15 октября 2026GitHub ↗
Установка

Программа портативная: распакованная папка и есть установленная программа. Реестр не трогается, удаление — удалить папку.

$name = "Audion_Image_Tools_v3.0.0_Full.zip"
Invoke-WebRequest "https://audion.dev/get/image-tools/3.0.0/Audion_Image_Tools_v3.0.0_Full.zip" -OutFile $name
Invoke-WebRequest "https://audion.dev/get/image-tools/3.0.0/Audion_Image_Tools_v3.0.0_Full.zip.sha256" -OutFile "$name.sha256"

$want = (Get-Content "$name.sha256").Split(" ")[0]
$have = (Get-FileHash $name -Algorithm SHA256).Hash.ToLower()
if ($want -ne $have) { throw "сумма не сошлась: загрузка повреждена" }

Expand-Archive $name -DestinationPath ".\image-tools"
Все загрузки · На главную