Автор рассказывает, как делает дизеринг для своих розовых изображений. Идея пришла из поста «Designing without color» — хотелось добиться чёрно-белой печатной эстетики, где цвет используется только для акцента, и этот акцент здесь розовый. Дизеринг не только круто выглядит, но и позволяет уменьшить размер файла за счёт меньшего числа цветов, как, например, на Low Tech Magazine.
Цель — сымитировать печатный оттиск. На экране пиксели меняют интенсивность RGB, а на бумаге полутона создаются сеткой точек. Автор выбрал метод AM (amplitude modulation), где размер точки меняется, но если делать его наивно, появляется муар. Для печати цвета смещаются по стандарту DIN 16547, и автор воспроизводит это цифрово через вращение каналов.
Инструмент — imagemagick с командой convert. Сначала изображение сжимается до 800 пикселей и переводится в CMYK. Каналы разделяются, на них накладывается сетка 2x2, затем каждый канал поворачивается: C на 0°, M на 15°, Y на 45°, K на 75°. После этого всё объединяется с композицией Overlay обратно в CMYK. В ранней версии точки оставались одного размера — это не настоящая имитация печати.
Позже автор понял: чтобы точки действительно меняли размер, нужно каждый канал перед объединением ограничить до двух цветов. Для этого в команду добавляется -colors 2 после разделения и поворотов. Получается жёсткая CMYK-картинка с «настоящей» AM-сеткой.
Старый розовый метод работал иначе: после сборки CMYK изображение перегонялось в серый (-colorspace Gray), ограничивалось двумя цветами и раскрашивалось в чёрный и розовый (#A2719B) через +level-colors. Выглядело похоже на печать, но съедало много деталей.
Новый метод использует готовую палитру и флаг -remap. Каналы масштабируются с SRT 1 вместо 2, что даёт меньшие точки, затем после объединения накладывается палитра с 32 оттенками розового. Глубины становится заметно больше, детали сохраняются. Проблемы возникают с очень светлыми снимками — они выходят плоскими. Тогда автор правит их вручную через -modulate 300,200,100 и инверсию, и только потом прогоняет через палитру.
Строго говоря, это не совсем дизеринг, а его ужасно затратная имитация. Процесс тяжеловесный: конвертация в CMYK, разделение с масштабированием и инверсией, повороты, лимитация до двух цветов, наложение и финальный маппинг на несколько десятков оттенков. На древнем CPU одна картинка может обрабатываться 10 секунд, а сама структура сетки плохо ужимается компрессией. Если нужна реальная экономия размера, автор советует не делать так. Для сравнения приводится FloydSteinberg-дизеринг — на примере из статьи его файл вышел даже меньше нового метода, хотя это не универсальное правило. В конце предлагается готовый bash-скрипт и упоминается, что аналогичную AM-сетку можно построить и в RGB, но для «печатного» настроения это не так аутентично.