COLORS
ЗАГРУЗИТЬ
ФАЙЛ
Ожидание файла...
Ожидание файла...
Коротко об инструменте
Инверсия — это арифметика над пикселями: красный канал 20 становится 235, белый лист превращается в чёрный, а синее небо — в оранжевое. Пригождается, когда нужно прочитать отсканированный негатив плёнки, вывернуть тёмную схему в светлую для печати, проверить контраст макета или собрать кислотную обложку. Картинка разворачивается в canvas на вашем устройстве, а готовый файл сохраняется как PNG размером один в один с оригиналом. Смотрите также: обесцветить фото до серых тонов, довести негатив до контрастного ч/б, разобрать палитру цветов картинки.
Загрузите полученный PNG обратно и инвертируйте ещё раз. Операция 255 минус значение симметрична, поэтому второй проход возвращает ровно те же числа. Единственная оговорка: если исходник был JPG, при первой загрузке он уже прошёл распаковку, и артефакты сжатия останутся в результате — цвета совпадут, а мелкий мусор вокруг контрастных краёв никуда не денется.
Альфа-канал не трогается: цикл проходит по байтам R, G и B и пропускает каждый четвёртый. Прозрачные области остаются прозрачными, полупрозрачные сохраняют свою степень непрозрачности, инвертируется только их цвет. Логотип с мягкими краями после обработки останется вырезанным, а не получит чёрную или белую подложку.
Плёночный негатив содержит оранжевую маску подложки и снят с другой характеристической кривой, поэтому простая инверсия RGB даёт синевато-холодную картинку, а не тот вид, который вы помните по лабораторным сканам. Для честного результата после инверсии нужна коррекция баланса белого и кривых в фоторедакторе — здесь выполняется только сама математика.
Со стороны сайта лимита нет. Ограничивает память вкладки: изображение разворачивается в canvas по четыре байта на пиксель, то есть снимок 6000×4000 занимает около 96 МБ в оперативной памяти ещё до экспорта. На десктопе это проходит спокойно, на старом телефоне очень крупный кадр может уронить вкладку — тогда уменьшите разрешение заранее.
Часто да, если исходник был JPG. На выходе всегда PNG со сжатием без потерь, и фотография в нём весит в разы больше, чем в JPG. Для скриншотов, схем и плоской графики разница почти незаметна: количество уникальных цветов при инверсии не меняется, поэтому и упаковывается такой файл примерно так же.
Никуда: страница не делает ни одного сетевого запроса с содержимым файла. Чтение через FileReader, пересчёт пикселей в canvas и сохранение через ссылку с data-URL происходят внутри вашей вкладки. После того как страница открылась, инвертор работает даже при отключённом интернете.
Да, в мобильных Chrome и Safari. Нажатие на область загрузки открывает галерею или файловый менеджер, превью масштабируется под экран, а готовый PNG падает в загрузки. Учтите, что iPhone может отдать снимок в HEIC — такой файл браузер иногда не рисует, и его сначала стоит перевести в JPG.
До: negative-scan.jpg — оранжевая маска, тени выглядят светлыми
После: inverted_image.png — нормальный позитив, дальше остаётся поправить баланс белого
До: architecture-dark.png — белые линии на почти чёрном фоне
После: inverted_image.png — тёмные линии на светлом, тонер не расходуется вёдрами
Оценка и фидбек помогают понять, что улучшать дальше.