Как я сделал самый быстрый ресайз изображений. Часть 0

Приветствую!

В этой статье я хочу рассказать, почему нужно учитывать резайры (изменение размера) изображений в соц. сетях.

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

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

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

Также можно, конечно, использовать Photoshop или онлайн сервисы, которые сделают картинку правильного размера.

О задаче

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

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

Размеры изображений Вконтакте

Ниже описаны основные форматы рекламы ВКонтакте, работающие с использованием рекламных баннеров.

1. Изображение и текст (формат 145х85 рх, заголовок в 33 символа и описание в 70).

2. Большое изображение (формат 145х165 рх, текст 33 символа).

3. Продвижение сообществ (формат 145х145 рх, название сообщества).

4. Специальный формат продвижения сообществ (256х256 рх, название сообщества)

Если вы не будите при учитывать эти размеры, то баннер который у вас будет подготовлен может быть обрезан очень сильно.

Редактирование изображения в ВК.jpg

Первые три формата, показываются пользователям не в ленте, а с левой стороны пользовательского интерфейса ВКонтакте.

Маленький размер этих форматов несколько ограничивает возможности текстового и графического оформления.

При создании рекламной записи с кнопкой либо при размещении в посте ссылки или лидогенерации и загрузке сниппета

1. Изображение нужно загружать 537х240 рх.

На таких изображениях необходимо размещать краткую информацию о рекламируемом продукте и призывы к действию.

… с помощью ресемплинга методом сверток. Что?

Чтобы было понятно, что конкретно нуждалось в оптимизации, я расскажу, что такое ресемплинг свертками. Свертка (правильно говорить свертка дискретных значений, т.к. пиксели изображения дискретны) — это очень простая математическая операция. У нас есть какой-то ряд значений №1 (коэффициенты) и ряд значений №2 (данные, в нашем случае интенсивность каналов пикселей). Результат свертки этих двух рядов будет сумма произведений всех членов попарно. Вот так просто — сумма произведений. Матан закончился, не успев начаться.

Осталось понять, как именно эта операция связана с ресайзом. Ряд значений №2 — это ряд пикселей исходного изображения. Ряд значений №1 — это коэффициенты, получающиеся из фильтра. Фильтр — это такая функция, которая определяет, как именно мы будем сворачивать значения. Может быть вы замечали в окошке ресайза в Фотошопе или другом графическом редакторе выпадающее меню с фильтрами — билинейный, бикубический, иногда Ланцош. Это и есть этот фильтр. А вот получившееся в результате свертки значение — это интенсивность одного канала одного пикселя конечного изображения. Т.е. чтобы получить изображение размером M×N пикселей, нам нужно сделать M×N×C операций свертки, где С — количество цветовых каналов. Да, посчитать весь пиксель одной операцией не получится, значения разных каналов независимы и должны считаться отдельно.

Функции фильтров не бесконечны, их значения не равны нулю лишь в центральной части: для билинейного фильтра это диапазон значений от –1 до 1; для бикубического от –2 до 2, для Ланцоша от –3 до 3 (правда бывают и другие разновидности Ланцоша).

Эти числа называют окном фильтра, т.к. фильтр применяется только в этом диапазоне, а за его пределами равен нулю. Соответственно ряд исходных пикселей, необходимый для свертки, берется в радиусе размером в окно фильтра помноженном на коэффициент уменьшения (или на единицу, если происходит увеличение). Думаю, это лучше объяснить на примере. Нам нужно уменьшить изображение шириной 2560 пикселей до ширины 2048, используя бикубический фильтр. Допустим, мы хотим найти значение 33-го пикселя конечного изображения. У бикубического фильтра размер окна равен двум, а коэффициент уменьшения получается 2560/2048 = 1,25, поэтому нам нужно будет взять строку пикселей исходного изображения от floor((33 — 2) × 1,25) до ceil((33 + 2) × 1,25). Т.е. с 38-го по 44-й пиксель. Для этих же пикселей высчитываются значения коэффициентов.

До этого момента я говорил о ряде коэффициентов и ряде пикселей, упуская из виду факт, что изображение — это вообще-то двумерная структура. И вроде по логике, сворачивать нужно не линию, а какую-то область исходного изображения. Но одно из свойств свёрток заключается в том, что операцию можно провести отдельно по вертикали и по горизонтали, сделав два прохода. Грубо говоря, это позволяет уменьшить сложность одной свертки с O(n²) до O(2n) (на самом деле меньше, но все равно существенно).

Facebook

У Facebook основные форматы изображения два:

1. Объявление изображение — 1200х628 рх

2. Реклама с несколькими изображениями в кольцевой галерее — 1080х1080 рх

Форматы отображается во всех местах размещения рекламы Facebook. На первый взгляд всё просто, но это не так: чтобы баннер в Facebook показывался и охватывал максимум аудитории, недостаточно просто сделать картинку подходящего формата. Максимальный охват рекламы обеспечат только те изображения, которые содержат не более 20% текста.

Почему все же свертки

Вообще, фраза «ресайз изображения» несет в себе минимум информации о том, что нужно сделать. Она говорит, что мы должны получить изображение конечного размера, используя оригинальное, с сохранением геометрии изображенных объектов. Но использовать исходное изображение можно по-разному. Можно например для каждого конечного пикселя поставить в соответствие один пиксель из исходного и взять его без изменений. Это называется метод ближайшего соседа. Картинка получается грубой, рваной, неприятной:

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

А вот как выглядит ресемплинг с помощью сверток:

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

Советы начинающему — «как подготовить фото к публикации». Расскажу про уменьшение размера фотографий до пригодного для публикации (ресайз) и увеличение визуальной резкости снимков (шарпенинг). Заниматься шарпенингом и ресайзом необходимо после окончательной готовности фотографии к публикации, когда уже сделаны все необходимые цветокоррекции, ретушь, выравнивание, обрезка и прочее. Сохраните перед этим про запас свой труд в формат без потерь — зависит от предпочитаемой Вами программы редактирования, лично я предпочитаю универсальный Tiff (16 битный). Ресайз всегда должен быть совмещен с шарпенингом, так при ресайзе неизбежна потеря деталей, необходимо визуально её компенсировать. 1. Способ с использованием бесплатного infanview. Этот способ только для особо ленивых и для чайников. Результат — средний, зато просто. Тем, кто хочет получить высокачественный результат, лучше перейти сразу к пунктам и последовательно. Тем не менее лучше так чем никак, а метод ресайза который использует infanview по-умолчанию — lanczos. Это достаточно неплохой алгоритм. Скачайте infanview и плагины с официального сайта https://www.irfanview.com. Установите. Открываете Ваш файл. Выбираем в меню:

Выбираем желаемый размер и алгоритм сжатия:

Я бы советовал выбирать размер 1000-1200 пикселей по длинной стороне для фотографий где деталицация не критичная составляющая снимка (например жанр), и 1100-1400 для снимков где она критична (например пейзаж). Для панорам размер 1400 и больше, и предложил бы обращать при выкладывании панорам на короткую сторону — ограничить размер короткой стороны не менее 400-500 пикселей. Выбираем в меню «сохранить как»:

Указываем имя файла и степень сжатия:

Имхо степень сжатия 89-90 отимальна. Готово. В программе есть возможность пакетной обработки файлов. 2. Photoshop, GIMP. На пример Photoshop. Допустим, Вы хотите из исходника с 3600 пикселов по длинной стороне получить 1200 пикселов. Необходимо разбить эту разницу на несколько этапов, допустим вначале уменьшаем до 2800, накладываем unsharp mask по вкусу, проверяем результат, снова уменьшаем до 2000, снова накладываем unsharp mask, проверяем, уменьшаем до 1200, и снова unsharp mask. Шаманство — количество шагов и степень unsharp mask. Вместо usharp mask можно использовать методы из пунта . Будет конечно ещё дольше, но лучше. Скачкообразный ресайз сразу на 1200 даст заметно худший результат. Расписывать с картинками не буду! 3. Некоторые специализированные программы. На примере PhotoZoom Pro. Программа платная. Но отменная вещь. Официальный сайт https://www.benvista.com/downloads . Открываем исходник:

Выбираем выходной размер:

Выбираем алгоритм S-Sline Max и предустановку Extra Detailed:

По вкусу подстраиваем, наблюдая результат сразу здесь же:

Выбираем в меню «Сохранить как»:

Выставляем желаемое сжатие:

Вуаля, готово! Программа может встриваться как плагин в Photoshop и Lightroom. На этом всё. 4. Бонусная часть — что если Вам требуется дополнительно увеличить резкость. Описанные далее шаги — окончательная обработка, но ДО окончательного ресайза. Photoshop. 4.0 Методы Sharpen, Unsharp Mask в Фильтрах. Не описываю и не предлагаю. Тут всем понятно полагаю. 4.1. Увеличение резкости по всему полю с помощью фильтра High Pass. Имеем фотошоп и в нем открытая работа, работа сведена в один слой:

Делаем копию слоя (клавиши Ctrl+J). Копия слоя указана стрелкой:

Выбираем вновь созданный слой (он сверху), идем в Меню: Filter-Other-High Pass:

Выбираем радиус (рекомендую в интервале где-то 1,2-3,0, чем больше — тем «жестче»):

Получаем нечто серое с контурами изображения:

Без паники, так и должно быть. Жмем Ctrl+Shift+U. Тем самым обесцвечиваем слой. Меняем метод наложения слоя с Normal на Overlay:

Картинка «нарисовалась»! Выбираем желаемую прозрачность слоя, тем самым ограничивая степень шарпенинга. Очень удобно — можно уменьшить вплоть до нуля и сразу видеть результат:

Всё!. Дополнительно напомню что работая с маской этого слоя, можно уменьшить задранную нами резкость на части изображения. Создаем маску слоя:

Выбираем эту маску слоя:

Черную кисть или другой подходящий инструмент и проходим по тем местам, где резкость избыточно. Ниже для примера — это края кадра. Для наглядности основной слой изображения сделан невидимым.

Готово:

4.2 И в заключение — не забывайте про штатный инструмент в палитре Фотошопа:

Аккуратное и без фанатизма его применение вполне может быть полезно. После окончания этого рода деятельности можно перейти к пп 2 или 3 — ресайз вниз с шарпенингом. Удачных кадров! liapin© fotopozitiff.ru

Комментарии

ДатаКомментарииИмя пользователяОценки
2013-03-04 12:30:10сорри, тестadmin5.0

Pillow

Pillow — это библиотека для работы с изображениями на языке Python, развиваемая сообществом во главе с Alex Clark и Eric Soroos. В Uploadcare Pillow использовался еще до того, как я пришёл в команду. Тогда мне это показалось странным — работа с изображениями была одной из основных задач, зачем было брать для нее библиотеку, завязанную на язык. Не лучше ли взять тот же ImageMagick, у которого тонна функций, которым пользуются миллион разработчиков, уж в нем наверняка все должно быть хорошо с производительностью. По прошествии нескольких лет, могу сказать, что это была удача как для меня, так и для Pillow. Как выяснилось, производительность обеих библиотек на старте была примерно одинаковой, но я очень сомневаюсь, что у меня хватило бы сил сделать для ImageMagick что-то такое, что я сделал для Pillow.

Pillow — это форк очень старой библиотеки PIL. Исторически, для ресайза в PIL не использовались свёртки. Первая реализация ресайза на свёртках в PIL появилась в версии 1.1.3 и была доступна при использовании фильтра ANTIALIAS, название которого подчеркивало то, что остальные фильтры использовали менее качественные алгоритмы. В сети до сих пор можно часто встретить уже не актуальные рекомендации использовать при ресайзе в PIL (и в Pillow, как приемнике) только фильтр ANTIALIAS.

К сожалению, у ANTIALIAS была довольно низкая производительность. Я полез в исходный код, чтобы посмотреть, что можно сделать, и оказалось, что реализация ресайза для ANTIALIAS (то есть свертки), может быть использована и с остальными фильтрами. А сама константа ANTIALIAS соответствует фильтру Ланцоша, у которого большое окно (±3), и поэтому он достаточно медленный. Самая первая оптимизация, которую я хотел сделать — включить свёртки для билинейного и бикубического фильтров. Так стало бы возможным у себя в приложении использовать более дешёвый бикубический фильтр (с окном ±2) и не слишком потерять в качестве.

Дальше мне было интересно посмотреть на код самого ресайза. Я без труда нашёл его в этом модуле. И хоть я и пишу в основном на питоне, я сразу заметил несколько сомнительных мест с точки зрения производительности. После нескольких оптимизация я получил прирост в 2,5 раза (это будет описано в следующей статье). Потом я стал экспериментировать с SIMD, переводить все вычисления на целые числа, агрессивно разворачивать циклы и группировать вычисления. Задача была чрезвычайно интересной, в голове всегда были еще пара идей, как улучшить производительность. Я погружался в кроличью нору все глубже и глубже, периодически проверяя очередную гипотезу.

Постепенно код становился все больше, а скорость все выше. Часть наработок отдавалась обратно в Pillow. Но SIMD-код было трудно перенести, потому что он написан для конкретной архитектуры, а Pillow — кроссплатформенная библиотека. Поэтому было решено сделать не кроссплатформенный форк Pillow-SIMD. Версии Pillow-SIMD полностью соответствуют версиям оригинальной Pillow и добавляют ускорение некоторых операций.

В последних версиях Pillow-SIMD с AVX2 ресайз работает от 15 до 30 раз быстрее, чем в первоначальном PIL. Как я уже говорил в самом начале, это самая быстрая реализация качественного ресайза, которую мне удавалось протестировать. Можно посмотреть страничку, на которой собраны результаты бенчмарков разных библиотек.

Что меня радует в случае с Pillow и Pillow-SIMD, это то, что это реальные библиотеки, которые реально использовать даже начинающему разработчику. Это не кусок кода, опубликованный на Stack Overflow, который непонятно куда воткнуть. И не «примитивные блоки», из которых как из конструктора нужно собирать каждую операцию. И даже не сложная C++ библиотека с запутанным интерфейсом, которая компилируется полчаса. Это одна строчка установки, одна строчка импорта библиотеки, одна строчка загрузки изображения и, «эй, мам, смотри, я пользуюсь самым быстрым ресайзом в своем приложении».

Еще раз про ресайз и уменьшение размера фотографий

Ни для кого не секрет что фотографии перед выгрузкой в сеть необходимо подготавливать специальным образом, но многие игнорируют этот факт и задают миллионы вопросов, по типу » а почему мои фотографии мыльные » или » почему поплыли цвета и стали блеклыми». Ответом на этот вопрос является простой ответ «Вы не подготовили фото», любая супер-хайенд ретушь и самый классный цветокорр может погибнуть из-за пренебрежением подготовки к загрузке в сеть. К печати, к стати, тоже необходимо готовиться, но там не все так критично и это выходит за тему этого поста. Итак, ближе к делу. Необходимым и достаточным условием для получения нормального фото в сети являются эти простые действия: 1) Ресайз. Т.к вашим проводником в мир интернета является браузер, а фотографии находятся на сайтах с своим дизайном ( а веб дизайнер не даст сломать свой интерфейс Вашей огромной фотографией) Вам необходимо фотографию уменьшить. Считается что оптимальным разрешением фотографии является 900 по длинной стороне 240dpi, но сейчас все больше устройств «понимают» HD разрешение, поэтому смело можно ставить 1200 ( но я все продолжаю использовать 900 по длинной), в противном случае вступают встроенные код сайта ресайзалки,которые и портят изображение. Ресайз необходимо выполнять правильно с повышением резкости, об этом можно почитать в жж Косенко, Журавлева, да и вообще в сети очень много статей на эту тему. 2) Цветовое пространство. Как и говорил выше, браузер — ваше окно в сеть. Все что мы видим — результат его работы, поэтому ему необходимо подсказывать как работать с Вашей фотографией, а именно подсказать какие цвета (цветовое пространство использовано). Для этого перед выгрузкой необходимо применить цветовой профиль sRGB. По умолчанию фотошоп работает с ц.п Adobe rgb и вся ваша работа по цветокору пропадет, если не применить srgb профиль. Опять же этот пост немного не об этом, как произвести конвертацию можно спросить у гугля. 3)Вот и подошел к самому главному. Размер. После описанных выше условий мы получили свою фотографию, она уже готова для загрузки на фотосайт или в соц.сеть, но некоторые фотосайты выставляют требования к объему фотографии (имеется в виду размер фотографии в кб, например club.foto.ru требует чтобы фотография была не больше 400кб), да и на свой сайт-визитку не зачем грузить огромное фото, размер дискового пространства хостинга тоже стоит денег. Что в этом случае можно сделать? 1) понизить разрешение. может не подойти, потреряется детализация и глубина фотографии 2) изменить способ интерполяции, например, по умолчанию фотошоп фотошоп сохраняет в «baseline standard» 3) То к чему я,собственно веду, использовать новенькую утилитку от израильских разработчиков (jpegmini.com) JPEGmini. Дальше пойдут почти сухие цифры,с некоторыми пояснениями. Будем считать что фотографию мы подготовили к выгрузке и сохранили на диск, сразу оговорюсь, для краткости, сохранено по моему методу ( спасибо Косенко и Журавлеву )

а вот как сохраняет фотошоп после обычного ресайза (image size-> 900×600 bicubic sharper optimized), к сожалению, по неизвестной мне причине жж не дает загрузить эти фотографии, поэтому привожу ссылки на файлы, можно скачать и сравнить https://yadi.sk/d/Lr-S_7d20WLdJ 900×600 bicubic sharper optimized 548кб https://yadi.sk/d/jyQj3zv50WLcj bicubic sharper progressive 552кб Казалось бы на этом все, но по сохраненной, с использованным моим экшном пробежимся JPEGmini :

Копия 20121028-FP4A8625

Напомню, результат после сохранения из фотошопа 442кб, т.е утилитка сохранила еще 100кб, по-моему очень неплохой результат, без потери качества( чуть позже покажу 100% кропы). В отличии от save for web и различными способами сохранения JPEGmini не убирает экзиф. На логичный вопрос, как достигается эта оптимизация я не смогу ничего ответить, процитирую выдержку с сайта разработчиков : используются оптимизированный алгоритмы сохранения изображения без потери качества, основанные на человеческом восприятии изображения. Вроде как есть патент. От себя могу сказать ( в свое время занимался работой с изображениями, в частности распознавания лиц, за малым не получил ученую степень, но офтоп это), что это возможно при использовании алгоритмов усредненного сжатия. Кстати они используют какие-то технологии HP( о чем честно написано в экзиф). Статейка не заказная и я с радостью воспользуюсь любым из предложенных вами способов сжатия без потери качества, пока не купил платную версию утилитки. Чем эта программа может быть полезной? Помимо сжатия для веба этой утиликой можно значительно уменьшить объем своего фотоархива. Например, фоторепортаж со свадьбы у меня получается на 2двд дисках минимум ( 900-1500 фотографий, готовых к печати на большие форматы). Например этот же снимок, ресайзнутый до 85% (ограничение на изображение до 17мегапикселей в лайт версии) «похудел» с 4.1мб до 1.7мб

А теперь как и обещал, 100% кропы, попробуйте догадаться какое из изображений после jpegmini =)

Копия 20121028-FP4A8625_2,5 copy

1 после jpegmini 2 несжатый 85% оригинал Само собой есть недостатки, по крайней мере в бесплатной версии (взломанную версию не нашел, особо и не искал, цена 700р) 1) Программа только для MAC, для пользователь windows есть возможность работы через web-интерфейс на официальном сайте https://jpegmini.com 2) Программа платная, цена 700р, бесплатная версия имеет ограничение на 20фотографий в день. 3) бесплатная версия не работает с изображениями больше 17 мегапикселей ps. Думаю не стоит говорить, что художественная сторона фотографий, приведенных в статье не обсуждается, тут с легкостью можно поставить любые картинки.

Замеры производительности

В статьях я буду выкладывать замеры производительности в виде таблицы, в которой исходное изображение разрешением 2560×1600 пикселей ресайзится до разрешений 320×200, 2048×1280 и 5478×3424 с использованием билинейного, бикубического и фильтра Ланцоша (т.е. всего 9 операций). Исходное изображение взято достаточно большое, чтобы не поместиться полностью в кеш процессора третьего уровня. При этом фактическое содержимое изображения не имеет значения с точки зрения производительности, можно ресайзить хоть пустой белый лист, хоть черный, хоть фоточку вашего кота. Вот пример результатов библиотеки Pillow версии 2.6, до любых оптимизаций.

Scale 2560×1600 RGB image to 320×200 bil 0.08927 s 45.88 Mpx/s to 320×200 bic 0.13073 s 31.33 Mpx/s to 320×200 lzs 0.16436 s 24.92 Mpx/s to 2048×1280 bil 0.40833 s 10.03 Mpx/s to 2048×1280 bic 0.45507 s 9.00 Mpx/s to 2048×1280 lzs 0.52855 s 7.75 Mpx/s to 5478×3424 bil 1.49024 s 2.75 Mpx/s to 5478×3424 bic 1.84503 s 2.22 Mpx/s to 5478×3424 lzs 2.04901 s 2.00 Mpx/s

Второй столбец здесь это время в секундах, а третий — пропускная способность исходного изображения для данной операции. То есть, если операция заняла 0,2 с, то пропускная способность будет 2560×1600/0,2 = 20,48 мегапикселей в секунду.

Исходное изображение ресайзится до разрешения 320×200 за 164 миллисекунды. Ну что, вроде неплохо. Может быть вообще не нужно оптимизировать, оставить как есть? Ну, если вспомнить, что разрешение фоток с мобильных телефонов сейчас в среднем имеет размер 12 мегапикселей, то все получается не так радужно. Фотка с айфона будет уменьшаться полсекунды без учета распаковки. Учитывая другие операции, в минуту вы можете обработать ≈80 картинок, а в час — около 5000. Текущая нагрузка на наш сервис около 130 тысяч запросов в час. Нам бы понадобилось 26 AWS c4.large серверов, работающих на пределе, чтобы справиться с такой нагрузкой. В реальности же у нас задействовано всего 4 сервера, нагрузка на которые в горячие часы около 40%.

Если бы такой эффект удалось экстраполировать до масштабов планеты и заменить весь код, занимающийся ресайзом картинок, на более эффективный, польза была бы огромной. Десятки тысяч сэкономленных серверов, сотни киловатт электричества. А это уже одна миллионная от мирового потребления. Да можно было бы спасти планету!

Дальше: Часть 1, общие оптимизации

Instagram

При создании баннеров для Instagram с текстом и общим оформлением такая же ситуация, как и в Facebook, нужно обязательно учитывать сколько текста находится на картинке, также изображение, может содержать не более 20%.

Для объявлений в ленте и кольцевой галерее оптимальный размер изображений – 1080х1080 рх, минимально допустимые формат картинок: квадратная – 600х600 рх. Меньший размер изображения не загрузится. Как обычно изображение можно обрезать, но вы можете потерять часть важной информации.

Обрезать изображение для Insta.jpg

Квадратная форма наиболее приемлема для этой социальной сети. На баннере рекомендуется размещать кнопки с призывом к действию, например, «Узнать больше», «Зарегистрироваться», «Попробовать сейчас». Этот элемент увеличивает кликабельность объявления в Instagram.

Сам себе дизайнер: масштабирование печатных макетов в три клика

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

я, в течение которой заказчик раз пять успел переписать своё ТЗ, а дизайнер – бесчисленное количество раз «поиграть со шрифтами». Макет готов, согласован, исходники переданы заказчику… А потом начинаются мелочи. Изначально делался макет, скажем, для наружки формата 3х6, но спустя какое-то время его решают использовать под печать на щиты других пропорций, или для винилового баннера, а то и вовсе для плаката А1. Сама по себе работа по переверстке макетов – несложная, но если посмотреть на процесс в целом, то это уйма затраченного времени. Заказчик снова звонит/пишет дизайнеру, ставит ему ТЗ, дизайнер (хорошо, если сразу) делает ресайз, отправляет превьюшку заказчику, тот (хорошо, если сразу) согласовывает, дизайнер высылает исходники… На это легко можно убить полдня. Бывают еще более запущенные случаи. Например, когда централизованно разработанные макеты в регионы сбрасываются в тяжелых .tiff, или в исходниках, но со склеенными слоями – чтобы на местах не «самодельничали», и твердо соблюдали корпоративный стиль. (Реальная ситуация, с которой сталкивался лично). Тогда тривиальная задача по масштабированию макета может превратиться в сложный квест с подбором шрифтов и прочими промежуточными этапами. Времени, соответственно, тратится еще больше. Проблема действительно типичная. Мало того – международная. По крайней мере, европейские клиенты BrandMaker с ней тоже сталкиваются, поэтому для ее решения предусмотрен типовой механизм автоматического масштабирование макетов на базе модуля Web-to-Publish (бывший Web-to-Print). С его помощью менеджер по рекламе может самостоятельно масштабировать макеты, причем для этого ему понадобится только веб-браузер.

Задача, стоящие перед системой, такова – дать возможность самим менеджерам, без привлечения дизайнеров, производить масштабирование макетов, соблюдая при этом требования к корпоративному стилю и на выходе получая файлы, не требующие дополнительной предпечатной обработки. Основной интерес, конечно, представляет непропорциональное масштабирование – когда размеры макеты по высоте и по ширине изменяются неравномерно, но при этом нужно сохранить общую структуру макета, взаимное расположение его элементов. Для того, чтобы показать, как это реализуется в Web-to-Print, необходимо сделать небольшое отступление и рассказать об используемых в этом модуле шаблонах. Шаблоны – это, по сути, некий набор правил, применяемых к конкретным макетам. Например, в шаблоне можно задать те области в макете, которые пользователям можно будет редактировать, а какие – нельзя. Таким образом, пользователи системы получают возможность самостоятельно редактировать макеты, но при этом застрахованы от нарушения корпоративного стиля. Интерфейс настройки шаблона (точнее, его малая часть) выглядит так:

1. Он открывает превью макета, который хочет отредактировать. Если функция масштабирования для данного макета доступна, то кнопка «Document Size» активна, и пользователь может кликнуть на неё и перейти к следующему шагу.

© BrandMaker Russia

https://www.brandmaker.com/ru/

Основы: объем и форма в фотографии

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

Элементарный пример: напрягите воображение и представьте шар. Заурядный обычный шар. Оранжевый. Теперь представьте, что на фото его освещает фронтальный свет, и потому тень напрочь отсутствует. И что же произойдет, если вы посмотрите на шар без тени? Правильно, вы увидите всего-навсего оранжевый кружок, прямо как в детских развивающих книжках. Да, не исключено, что это самый «кружок» на самом деле будет обладать нереальным объемом, но без тени вы этого никогда не увидите. А вот если источник света слегка сместится вверх и немного в сторону – это совсем другое дело. Перед вами предстанет тень, а ваш мозг «поймет», что перед вами объемный предмет.

А вот и наш оранжевый кружок-шар с фронтальным освещением:

А сейчас давайте чуть-чуть затемним кружок с помощью более темного оттенка, чем сам круг:

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

А что если нам нужно добавить текстуры? Как сделать так, чтобы шар казался гладким и блестящим? Нам необходимо просто добавить тон, который был бы более светлым, чем основной цвет шара:

Добавив блик (светлый тон) в нужное место, нам удалось выявить текстуру шара. А теперь попытаемся поменять текстуру на более матовую. Ну и что вы предпримете? Задумались? На самом деле все просто — тут не нужен другой блик или тень. Достаточно слегка растушевать границы блика и вот она магия — фактура шара изменилась!

«Ну и причем тут объем в фотографии?» — спросите вы. А при том, что нужные сочетание тени и света на ваших снимках не только добавят объема и эффекта трехмерности пространства, выявят текстуру, но и, ко всему прочему, подарят фотографии нужное нaстроeние и эмоции. Внимательнейшим образом рассмотрите каждую, из приведенных ниже фотографий, и попробуйте отыскать различия в объеме, текстуре и общем настроении.

Придание фотографии объёма в фотошоп.

О программе Adobe Photoshop
Adobe Photoshop – один из наиболее популярных пакетов для обработки растровой графики. Несмотря на высокую цену, программой пользуются до 80% профессиональных дизайнеров, фотографов, художников компьютерной графики. Благодаря огромным функциональным возможностям и простоте использования Adobe Photoshop занимает доминирующее положение на рынке графических редакторов.

Богатый инструментарий и простота применения делает программу удобной как для простой коррекции фотографий, так и для создания сложных изображений.

Тема 3. Улучшение фотографий. Урок 7. Простые способы как увеличить объём фотографии в фотошоп.

Мир вокруг нас — объёмный. А фотографии – плоский кусок бумаги или экран монитора. То, что превосходно выглядит в реальности, не всегда может похвастаться «фотогеничностью». Но, как говорится, не бывает неудачных снимков. Тем более, что данный урок Фотошоп входит в тему «улучшение фотографий».

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

Для начала стоит разобраться, что такое объём, и как мы его воспринимаем. По большому счёту, восприятие объёма сводится к тому, как мы видим глубину теней. Как один предмет воздействует на остальные, находящиеся «дальше». И, естественно, какая часть фото находится «в фокусе».

Таким образом, вопросы придания объёмности изображению зачастую сводятся к двум основным действиям:

  1. Работа с тенями, контурами объектов: усиление границ света и тени
  2. Работа с резкостью и размытием на разных участках фото

Данный урок описывает простые алгоритмы первой группы. Он, естественно, не охватывает всего многообразия инструментов, но показывает как просто и быстро (за 5-6 минут) существенно улучшить вид вашего фото. Приступим.

Усиление объёма с помощью фильтра «Тиснение».

Для получения «объёмного фото» потребуется новый слой. Для этого достаточно выбрать в меню «Слои» пункт «Создать дубликат слоя». Либо вызвать палитру слоёв («Окно» — «Слои», горячая клавиша F7). И уже в меню палитры (либо контекстном меню) выбрать одноимённый пункт. Подробнее о слоях и том, как с ними работать, рассматривалось в предыдущих занятиях. Основы в уроке «выделение: простая геометрия». Наложение и взаимодействие в занятии «усиление резкости наложением слоёв».

Далее необходимо усилить зоны перехода света и тени на фотографии: границы объектов. Желательно сделать это, не меняя структуру освещённости поверхностей. И тут используется «побочный эффект» режимов наложения слоёв в Фотошоп. Вспомните, большинство режимов имеет исключение (не работает) в случае 50% серой заливки. Соответственно задача заключается в создании серого фота с тёмными и светлыми линиями на контурах.

Первый способ добиться эффекта – применить фильтр «Тиснение» из стандартного набора Adobe Photoshop.

Для вызова фильтра:

  1. Убедитесь, что целевой слой активен
  2. В меню «Фильтр» выберите «Стилизация» — «Тиснение»

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

Появится окно настроек. Фильтр «Тиснение» имеет всего лишь три параметра:

  1. Угол. Он отвечает за то, под каким углом будут накладываться тени и зоны подсветки.
  2. Высота. Устанавливает ширину обрабатываемого контура в пикселях. Визуально – «высоту тиснения». При этом в малых значениях результат обработки по гамме близок к «градациям серого». В больших значениях в результате обработки проявляется достаточно много посторонних цветов.
  3. Эффект. Данный параметр отвечает за детализацию. В минимальных значения обрабатываются только контуры самых больших объектов с сильными переходами света и тени на границах. В максимальных значениях включается «контрастность» на средних тонах – мелкие зоны с не особо выраженными границами.

Для того, чтобы изменить вид контуров зоны перехода на снимке, необходимо, чтобы они были светлее или темнее 50% серого. Присутствие иного цвета на остальных зонах нежелательно. Для этого:

  • Выберите фильтр «Тиснение»
  • Установите угол таким образом, чтобы он повторял направление света на фотографии. Второй способ – установка вектора инструмента под прямым углом к вектору освещённости.
  • Отрегулируйте высоту и эффект применения.
  • Нажмите кнопку «ОК»
  • Наложите полученный слой одним из методов группы «Усиление резкости»
  • При необходимости – отрегулируйте прозрачность верхнего слоя

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

результат придание объёма фильтром тиснение

Замечания:

  • Угол, под которым применяется фильтр, очень важен. Если в результате применения фильтра, зоны света и тени на двух слоях не совпадут – вместо объёма вы получите размытую, ужасную фотографию.
  • Устанавливая высоту, имейте в виду, что на больших значениях проявляются дополнительные цвета. Возможно, небольшое подкрашивание пойдёт на пользу. НО не всегда. Будьте осторожны со значениями «Высоты»
  • Параметр «Эффект» при увеличении объёма практически всегда должен превышать 200%. Иначе вы получите резкие границы при «мутной» заливке большинства поверхностей. Например, выделенные контуры дерева без контуров листвы. Это не всегда оправдано и красиво.

Практический совет: эту методику (в малых значениях параметров) можно использовать для восстановления сильно размытых фотографий. Например, старых портретов. Главное – угадать с направлением света и удалить те части, где «объёмная текстура» будет мешать.

Как придать фотографии объем

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

Вот в этом и заключается секрет придания объема фотографии.

Для того чтобы передать объём и форму на снимке, вам необходимо избегать фронтального света, и выставлять освещение таким образом, чтобы источник света находился слегка в стороне и немного выше от вашего объекта съемки.

Рейтинг
( 2 оценки, среднее 4.5 из 5 )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий