Спектральный калькулятор: 12 лет обновлений и улучшений

обсуждение, новости
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

В спектральный калькулятор добавлены расчеты SCTV или Spot Colour Tone Value по стандарту ISO 20654:2017.
Результаты расчета SCTV выводятся вместе с таблицами DotGain и TVI в поле Output.
Подробнее на тему SCTV в отдельной теме.
Изображение
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

В свободном доступе online-расчеты SCTV можно произвести по ссылке: Perceptual Uniformity Tone Value calc • SCTV & CIE ΔE
Вложения
Внешний вид калькулятора Perceptual Uniformity
Внешний вид калькулятора Perceptual Uniformity
• 56.21 КБ • 60151 просмотр
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Переписал функцию умного сглаживания в спектральном калькуляторе. Теперь задействуется более точная для красочных наложений мультиканальная интерполяция. Обычно знакомые нам алгоритмы интерполяций оперируют двумя размерностями X и Y. Реже тремя. Интерполяции больших размерностей, например 5 (CMYK+nm) не так-то просто разыскать, они вообще не имеют каких-то официальных названий. Друзья помогли мне в поиске и тестировании алгоритма такой интерполяции, потом я пару месяцев еще потратил, чтобы реализовать все в коде на яваскрипт в удобном интерфейсе калькулятора, для спектров и XYZ, для CMYK и RGB, в формате CGATS и CxF. Честно говоря, далось тяжело, но я отдыхал и снова вступал в бой с кодом. Наконец-то этот этап закончен. По совету друзей также размышляю еще и над шумодавом замеров, но до практической реализации пока далеко, пока так - обрывки идей.
Изначально спектральный калькулятор планировался просто как визуализатор лабов и TVI, как простое средство аудита и калибровки офсета. Но в процессе оброс еще и другими функциями. Слово за слово: ну раз мы уже считаем DotGain и TVI - почему бы заодно не посчитать и SCTV? Вот так и разрастается число функций, одна тянет за собой другую.
Вложения
Скриншот вызова Умного Сглаживания
Скриншот вызова Умного Сглаживания
• 129.7 КБ • 60116 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Дописал опцию удаления всех повторяющихся патчей из промера. Любую тесткарту теперь можно проредить от повторов при необходимости.
Для функции Умного сглаживания удаление повторов включается автоматически.
Вложения
Чекбокс удаления дубликатов полей CMYK или RGB
Чекбокс удаления дубликатов полей CMYK или RGB
• 118.54 КБ • 59901 просмотр
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Написал функцию сортировки CMYK по 4 столбцам единовременно, в указанном вами порядке сортировки.
Функция нужна для дальнейшего развития пары идей. Поэтому несколько длинноватая и создает мне массивы на будущее, для применения в еще ненаписанных функциях, но с прицелом на них. А сегодня мне достаточно получить новую нумерацию строк, и это, как справедливо заметил мой собеседник по яваскрипту Fodin, можно сделать в 10 строк кода, а не в 100.
В Excel у меня сортировка только по 3 столбцам максимум единовременно, захотелось сделать по 4 разом. Итого 100 строк кода, 4 вложенных цикла, четырехмерный массив - и все получилось.
Кому интересно программирование - вот красивый лаконичной код сортировки по 4 размерностям от Федора Одинцова. Главное он легко масштабируется и на большее кол-во размерностей.
Вызов функции четырехмерной сортировки и указание порядка сортировки
Вызов функции четырехмерной сортировки и указание порядка сортировки
• 83.27 КБ • 59744 просмотра
На скринах ниже также из IT8.7/4 вырезаны дублирующиеся патчи функцией, описанной постом выше.
Также напомню, что сортировки по светлоте, насыщенности и тону существуют уже очень давно, дополнены были давно и двумерной сортировкой по светлоте и тону.
Вложения
порядок сортировки CMYK
порядок сортировки CMYK
• 18.83 КБ • 59744 просмотра
порядок сортировки YMCK
порядок сортировки YMCK
• 18.87 КБ • 59744 просмотра
порядок сортировки KCYM
порядок сортировки KCYM
• 18.61 КБ • 59744 просмотра
порядок сортировки KYMC
порядок сортировки KYMC
• 18.61 КБ • 59744 просмотра
Сортировка по светлоте и тону
Сортировка по светлоте и тону
• 30.48 КБ • 59744 просмотра
Сортировка по тону с отделением ненасыщенных цветов с Chroma < 5
Сортировка по тону с отделением ненасыщенных цветов с Chroma < 5
• 19.91 КБ • 59744 просмотра
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Изображение
Изображение
Запилил наконец progress к долгому выполнению тяжелой функции Smart Smoothing.
Подробности если интересно - тут:
viewtopic.php?f=13&t=641&p=3115#p3115
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Запилил за 2 дня подбор красок по каталогу с сортировкой. Можно тестировать: https://cielab.xyz/colorconv/
Скриншот подбора краски с сортировкой
Скриншот подбора краски с сортировкой
• 32.31 КБ • 59604 просмотра
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Кнопки функций to Relative и to Absolute
Кнопки функций to Relative и to Absolute
• 197.44 КБ • 59357 просмотров
Для работы с профилями дополнил спектральный калькулятор пересчетом абсолютных колориметрических измерений в относительные и обратно из рилейтива в абсолют, с указанием как белой точки подложки, так и с выбором белой точки иллюминанта в спойлере хроматической адаптации. Можно тестировать.
Профили ICC обычно не содержат абсолютных таблиц, всегда идет пересчет из рилейтива в абсолют по формуле ICC (по ссылке 28 страница). А наши колориметрические измерения всегда абсолютны, при измерениях мы крайне редко работаем с относительной колориметрией.
Чтобы упростить переход между измерениями и непосредственно таблицами Relative профилей - созданы новые кнопки функций по формулам ICC - Absolute to Relative и Relative to Absolute.

Также в помощь колористу и в продолжение темы относительной колориметрии оставил на память в открытом доступе пару своих утилит - дополнений к спектральному калькулятору, снабдил кнопками с примерами, если потянет профили поковырять - эти две утилитки мне очень пригодились.
https://cielab.xyz/spectralcalc/Lab_ATo ... ation.html
https://cielab.xyz/spectralcalc/Lab_ATo ... kager.html

Первая интерполирует любую таблицу без повторов строк на входе CMYKLab в таблицу профиля с гранулярностью 16 (типичный Гейдель). Код открытый, кому надо - любую гранулярность могут указать. Вторая утилитка попроще - просто упаковывает таблицы в нужной длины строки и при необходимости переводит десятичные в 16 бит, если на входе не уже 16 бит.
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Spectralcalc iccGPU - впервые в истории компьютерного колорменеджмента считаю на представленном видео цветовой профиль icc на графическом ускорителе (Intel UHD Graphics 630 GPU, более мощный старичок Nvidia 1060 занят в процессе другими расчетами) причем параллельно пока всего две тяжелые операции с помощью клиентского яваскрипт (сервер отдыхает, чем быстрее ваш комп - тем быстрее расчеты). Не надо напоминать, что современные GPU здорово помощнее центральных процессоров на операциях, связанных с видео, графикой и цветом. Сам бог велел задействовать всю эту мощь при работе с цветовым профилем icc! Тот же Capture One от Phase One при задействовании серьезной графики уделывает центральный процессор i7 в 20-30 раз по скорости обработки цвета фотографий. Я равняюсь на лидеров.

В самом разгаре разработки, скоро будет опубликовано на сайте.
Видео 45 секунд завораживает любителей задействовать всю мощь хорошего компьютерного железа продвинутым современным софтом! 1080p честно на ютьюбе если хотите рассмотреть детали.

https://www.youtube.com/watch?v=qoBvvbN2r6s

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

Рассмотрите рабочий промежуточный пример поканально и по слоям, кто знает в этом толк и ценит качественное цветоделение: https://cielab.xyz/thumbnails/1864_AK_test_v8.psd (26 мб, три слоя с результатами цветоделения лидеров по ISO Coated v2 (Heidelberg), Argyll fogra 39, тест моего цветоделения в начальной всего 8 редакции стадии разработки).

Кого заинтересовало - следите за обновлениями темы. Будет опубликовано скоро здесь.
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Опубликовал под вечер 7 марта beta-версию Spectralcalc iccGPU для построения CMYK профилей. Можно тестировать.
Таблицы цветоделения строятся по принципу инверсии данных о цвете красок: задаются нужные краски с большой шириной черного и исключением в ней для телесных при выборе генерации Normal Skin 300 на 11 шаге. Находится цвет этих красок, и лишь затем из этих пар создается таблица цвет-краски. Генерация черного таким образом не похожа ни на один известный профилировщик, позволяет добиваться сепараций максимальной чистоты цвета: необычайно востребовано в классном офсетном цветоделении.
Обратите внимание помимо колориметрической таблицы Relative на особые таблицы Perceptual и Saturation, они не просто так сделаны. В них воплощен при помощи алгоритма CIECAM02 мой любимый двуразмерный гамут-маппинг, когда для достижения максимальной насыщенности регулируется светлота: в модели RGB краски светлее, чем краски в модели CMYK, чтобы сохранить их насыщенность при цветоделении - можно сбавить их светлоту немного для достижения максимальной возможной насыщенности.
Обновление затронуло несколько скриптов спектрального калькулятора, если вы им регулярно пользуетесь - чтобы не посыпалось ошибок - почистите кэш браузера только от сохраненных файлов при закрытой странице со спектральным калькулятором.

Профилек по фогре 39 для бета-тестирования.

Вариант обычной генерации черного, как у ECI.

UCA для голубой и пурпурной и anti-UCA для желтой закладываются уже при генерации профиля в лучших традициях Гейдельберга. Программисты остального софта такие классные плюшки цветоделения не знают.
Сделано под фотошоп, чтобы его роскошный BPC работал или не работал по желанию пользователя, используя или не используя самую правую область графика.
Вложения
Интерфейс iccGPU в спектральном калькуляторе
Интерфейс iccGPU в спектральном калькуляторе
• 442.86 КБ • 59000 просмотров
Кривые генерации черного в балансе тестового профиля
Кривые генерации черного в балансе тестового профиля
• 40.88 КБ • 59000 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

На память - содержимое таблицы 9 шага на сегодня
На память - содержимое таблицы 9 шага на сегодня
• 32.42 КБ • 58949 просмотров
Все дело в волшебных пузырьках!-)
Наконец взялся за отлаживание самого интересного - генерации черного в телесных.
Тут алгоритм инверсии как раз и позволяет идеально управлять тем, какие будут краски, почему в телесный будет добавлен голубой вместо черного, тогда как во всем остальном - черный будет преобладать над загрязняющей. Вариантик по той же ссылке, уже неплохо, но буду еще допиливать, там есть что еще допиливать. Именно на этом шаге у многих профайлеров, начиная с фотошопа, провал, именно тут весь цимес управления цветоделением - в этой табличке на 9 шаге конструирования. Самое интересное, что в этом пользователь может самостоятельно участвовать: на 9 шаге (достаточно лишь заполнить первый шаг, чтобы уже с девятого посчитать рилейтив цветоделения и пропустить таблицы отображения) сценарий генерит по нескольким циклам те нужные нам краски, для которых мы для начала найдем их цвет из замеров тесткарты. Сейчас 1600 сочетаний красок, где телесные и оранжевые в конце. Меняя эту таблицу на шаге 9 по своему усмотрению - мы меняем ширину черного, задаем ее например большую для всего, кроме телесного сектора. Такой возможности самостоятельно управлять генерацией таблиц цветоделения в профиле не предоставляет ни одна программа. Мне осталось лишь еще какое-то время помозговать над всеми сочетаниями красок, чтобы добиться ровно того, что я хочу получать при цветоделении и телесных, и всех остальных.

Если захотите сильно увеличить размер таблицы 9 шага и уменьшить степ - скорость расчетов будет снижаться, тут бы надо удержаться в диапазоне 1500-2000 полей, и это вполне реально. Чтобы быстро развернуть эту таблицу в 35937 полей таблицы профиля с гранулярностью 33 - она не должна быть слишком большой, описывать краски достаточно равномерно в охвате, причем содержать именно нужные краски, а не их вариации для одного и того же цвета. Цветоделение уже сейчас мне показывает, что я должен поменять в этой таблице в темных красноватых. Я именно что никак не поборю до конца конфликт между максимальной шириной черного для всего, и минимальной шириной для сектора телесных: то у меня избыток черной в темном оранжевом, то недостаток!-)) Тем более интересно будет наконец найти необходимый баланс между красками в этом секторе по цветовому кругу. И как и говорил: это в моем конструкторе даже можно сделать самостоятельно, не дождавшись, пока я сгенерю нужные краски, которые хочу видеть, и уберу те сочетания красок, которые видеть не хочу. Просто создайте свою таблицу нужных красок для девятого поля! Мне кажется, это самое интересное во всей истории с конструированием профиля, никакая из программ не позволяет колористу так глубоко самостоятельно влезть в процесс генерации таблиц цветоделения.


Визуально табличка с нужными красками и посчитанным для них цветом исходя из замеров выглядит так пока, но думаю скоро изменится благодаря моим упражнениям на этом стенде. В самом низу - как раз вариации на тему телесного сектора цветового круга, видно сразу, что надо еще над совсем темными hue 45 градусов поработать. Все самое интересное только начинается! Еще семь лет назад хотел такую штуковину, чтобы реально управлять созданием профиля цветоделения, но не было опыта запрограммировать. За семь лет набрался опыта достаточно, чтобы начинать эксперименты с собственным профайлером.
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Варианты телесных и красных
Варианты телесных и красных
• 34.16 КБ • 58914 просмотров
Уделяю свободное время когда оно есть генерации нужных красок, и это творчество требует времени, раздумий и тестов.

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

Понял теперь почему у Грэма есть артефакты в очень чистых сепарациях от его профилей, построенных очевидно по какому-то схожему принципу инверсии.
Если намешать разных рецептур оранжевого и с голубым и с черным - дело не пойдет. Не должно быть близких цветов с сильно разными рецептурами. И если заставить мультиразмерную сплайновую интерполяцию просчитать например пространство между 20-70-80-0 и 0-90-100-20 без каких-то переходов от минимальной ширины черного до максимальной - тоже возникают артефакты.

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

Меня сегодня на онлайн-консультации как раз спросили: почему красная плашка цмик 100 на 100 при переделивании на саму себя в фотошопе превращается уже не в плашку 100 на 100, а во что-то другое трех- и четырехкрасочное. А вот потому, что представленная на картинке табличка сочетаний красок внутри тех или иных профайлеров просчитана не идеально, а порой и очень скверно просчитана. Посмотрите, как переделит на себя красную плашку Грэм, и как переделит копра или Гейдельберг - отпадут все сомнения, кто сделал более хороший профайлер для цветоделения. Я постараюсь добиться идеала в скором времени, главное примерно понятно, что именно надо делать.

Еще подумал, что профайлеры все сделаны в Америке и Германии, пожалуй я наверное первый, кто написал свой CMYK профайлер с интерфейсом для свободного коммерческого использования (на первый год взаимодействия с сайтом вообще бесплатно) на территории РФ, РБ, Украины, Казахстана и Прибалтийских стран. Поправьте, если до меня в указанных регионах мира кто-то сделал подобное.
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Провел 3 дня в экспериментах с исключением телесного из общей максимальной ширины. Посадил эту функцию на таблицу Perceptual. Уже начинает профиль нравиться! По Relative и Saturation задал просто максимальную ширину во всем охвате, в перцепционной таблице - традиционный телесный с минимумом черного при общей остальной максимальной ширине. Трехмерное представление очень помогало развести краски с одной и другой генерацией так, чтобы они нигде не встречались близко.
Тестовый профиль тут.
Вложения
Выделение телесных
Выделение телесных
• 52.51 КБ • 58836 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Не знаю, как Apple делает свои процессоры, но на маленьком 8 айфончике считает даже капельку быстрее, чем на i7 процессоре 8 поколения в здоровенном компе, все эти сумасшедшие огромные таблицы тяжеленной сплайновой мультиразмерной интерполяцией.
Вложения
Скриншот работы на 8 iPhone
Скриншот работы на 8 iPhone
• 1.55 МБ • 58828 просмотров
Аватара пользователя
mihas
Администратор
Сообщения: 1455
Зарегистрирован: 18 авг 2004, 16:58
Откуда: Москва
Контактная информация:

Re: Спектральный калькулятор: 7 лет обновлений и улучшений

Сообщение mihas »

Сделал для обкатки в Spectralcalc iccGPU четыре профиля цветоделения по фогре 39:

ISO Coated v2 Perceptual Skintones iccGPU - для максимальной ширины черного сделано принципиальное исключение в перцепционной таблице для достижения традиционных телесных с минимумом черной краски. Колориметрическая таблица Relative не делает исключения в максимальной ширине черного для телесных, как это сделано в таблице Perceptual.

ISO Coated v2 Heavy GCR iccGPU - профиль с максимальной шириной черного и тяжелой (Heavy) генерацией GCR для монохромных и ахроматичных изображений.

ISO Coated v2 BTAC 240 iccGPU - профиль с максимальной шириной и смешанной генерацией черного с максимально низкой достижимой в офсете светлотой смеси суперчерного. Для любых фотоизображений, кроме телесных и ахроматичных, для них - первый и второй профиль подходят лучше.

ISO Coated v2 Less GCR in Skintones iccGPU - профиль с тяжелой (Heavy) генерацией черного GCR и максимальной шириной черного, при этом для телесных сделано исключение во всех таблицах, и в цвет кожи черная краска не попадает. Удобно применять для цветоделения художественных портретов на сером фоне. Красивые девушки на сером фоне - частый прием в печатной рекламе.

ISO Coated v2 MaxK MaxWidth iccGPU - профиль с максимальной шириной и со скелетным черным MaxK. Цветные краски в балансе подмешиваются в черный для достижения максимального контраста лишь ниже светлоты 25, до этого порога нейтраль рисует одна единственная черная краска.

ISO Coated v2 PureK MaxWidth iccGPU - профиль с максимальной шириной и со скелетным черным PureK предназначен для цветоделения чертежей, диаграмм, бизнес-графики, техногенных скриншотов. Поскольку одной единственной черной краской без примеси толики цветных в балансе не достигается самой низкой светлоты суперчерного - с осторожностью используйте профиль для цветоделения фотографических изображений, контраст фотографии в глубоких нейтральных тенях единственной черной краски может быть в печати недостаточным при слабом накате черной краски. Все 4 краски не встречаются вместе ни в одном оттенке при цветоделении, что бывает востребовано.

ISO Coated v2 Width 100 BTP iccGPU - профиль с подавлением Blue Turns Purple problem. Тон насыщенного синего сдвигается в голубую область по этому алгоритму, голубые в офсете более насыщенны, чем синие, цветовой охват растет. RGB профили с подавлением BTP по ссылке.

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

В создании неколориметрических таблиц Perceptual и Saturation задействованы уникальные возможности алгоритма хроматической адаптации CIECAM02. Профиль Perceptual Skintones делает телесные немного почище при цветоделении с перцепционным Rendering Intent. Колоранты RGB обычно светлее, чем колоранты CMY, поэтому таблицы Perceptual и Saturation, чтобы сохранить насыщенность оригинала, немного понижают светлоту колорантов для сохранения их максимальной насыщенности в более темных триадных красках CMYK. Схематично этот перцепционный гамут-маппинг представлен на скриншоте.
Вложения
Генерация черного в балансе
Генерация черного в балансе
• 63.63 КБ • 58821 просмотр
Генерация черного профиля MaxK
Генерация черного профиля MaxK
• 41.58 КБ • 58585 просмотров
Ответить

Вернуться в «Программное обеспечение для препресс»