Заменить белый фон на прозрачный. Как сделать прозрачный фон на картинке

04.04.2019

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

Часто такая фича нужна для фотографий товаров в интернет-магазине, картинок, которые накладываются на корпоративный фон и других фоток, не портящих дизайн сайта. Вырезать каждую фотку вручную фотошопом довольно грустно, но есть php-методы, с помощью которых это можно «поставить на поток».

Как это работает

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

Замена белого фона прозрачным возможна только если выходная картинка сохранена в формате PNG или GIF . Подойдут и новые форматы WebP и BPG с поддержкой прозрачности.

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

Замена фона, пример на bash

Для удаления фона в ImageMagick есть оператор -trim. Он обрезает картинку по заданному цвету:

Convert image.jpg -quality 100 image.png convert image.png -fuzz 20% -fill white -draw "color 5,5 floodfill" -quality 100 image.png convert image.png -transparent white image.png convert image.png -define convolve:scale="100!,100%" -morphology Convolve "Log:0x2" image.png
Перед обрезкой стандартный JPEG конвертируется в PNG. В lossy JPEG’е фон не будет однородным. Соседние пиксели обычно незначительно отличаются по цвету. Например: белый, светло-серый, светло-голубой. Аргумент fuzz устанавливается в значение >0, чтобы разрешить функции считать соседние цвета одинаковыми.

Замена фона, пример на PHP

Пример обрезки белого фона на картинке (входной файл: image.jpg, выходной - trimmed.png):

setImageFormat("png"); } $image->borderImage("#ffffff",1, 1); $image->trimImage(0); $image->setImagePage(0, 0, 0, 0); $image->writeImage("trimmed.png"); ?>
Оператор borderImage рисует вокруг картинки рамку 1х1 в цвет фона, после чего оператор trimImage обрезает ее вместе с рамкой.

Внимание! Оператор trimImage работает, если Imagick скомпилирован с ImageMagick версии не ниже 6.2.9.

Как сделать фон однородным

Похожим способом можно заменить неоднородный фон на однородный при конвертации из JPEG в PNG:

Convert image.jpg -fill none -fuzz 1% -draw "matte 0,0 floodfill" -flop -draw "matte 0,0 floodfill" -flop image.png
В этом примере - каждый пиксель фона зальется одним цветом - пикселя с координатами (0;0).

Много примеров работы кода

Как работает обрезка фона с помощью библиотеки Imagick можно проверить

Прежде чем говорить о том, как заменить фон в "Фотошопе", хотелось бы объяснить, зачем это нужно. Так вот, это позволит перенести персонажа фотографии в любое место действия, соответствующее авторскому замыслу, - фантастическое или даже экзотическое. Делать это можно, используя арсенал инструментов всем известной программы Photoshop.

Выбор способа

Если вы не знаете, как заменить фон в "Фотошопе", то предлагаем вашему вниманию следующие способы: обвод вручную контуров фигуры при помощи инструментов из набора Lasso; автоматическое выделение фрагментов изображений при помощи инструментов Quick Selection и Magic Wand, создавая различными способами маски и тому подобное. Создавая комбинации функций вышеописанных инструментов тем или иным путем, в конце концов, вы начнете понимать, как заменить фон в "Фотошопе" - необходимый участок по контуру должен быть обрамлен мерцающим бордюром.

Чтобы поменять фон на цифровых изображениях, прежде всего, нужно, чтобы персонаж или предмет, не являющийся фоном, был отделен от, собственно, фонового - теперь ненужного - фрагмента изображения.

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

Придаем слоям невидимость

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

Практика

В этом простом на первый взгляд примере того, как заменить фон в "Фотошопе" CS6, имеется подводный камень. Описанный выше порядок действий может работать в любом из слоев "Фотошопа", кроме слоя такого типа, как Background. Технически назначить маску прозрачности на данном слое вы никак не сможете. Чтобы увидеть, действительно ли это так, посмотрите внимательно на панель слоя, отрыть которую можно путем нажатия на клавишу F8.

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

Что же делать в таком случае? Снимать все эти ограничения, сделать слой обыкновенным. Для этого надо будет в контекстном меню, которое открывается путем нажатия левой кнопки мышки (если вы работаете в Windows) на строчке с названием слоя в список, выбрать пункт Layer from Background ("Создание слоя"). Также эта команда доступна через главное меню Layer>New>Layer from Background. Таким образом, слой Background будет заменен на обыкновенный.

Теперь все ограничения сняты, вы знаете, как заменить фон на фотографии в "Фотошопе", и спокойно можете проделать вышеописанный процесс назначения слою маски прозрачности самостоятельно.

Замена фона при помощи инструментов из набора Marquee

Далее мы расскажем вам о том, как заменить фон на фото в "Фотошопе" при помощи инструментов из набора Marquee. Для этого открываем файл с будущим фоном. Копируем изображения из него в буфер обмена путем выделения либо фрагмента картинки, используя инструменты из набора, либо просто выделив все поля изображений, выбрав пункт Select All / "Выделить все" в меню Selection (либо нажав сочетание клавиш Ctrl+A). После выделения помещаем выбранный фрагмент в буфер обмена, нажав Ctrl+C или выбрав пункт Copy в меню Edit ("Редактирование"). Теперь возвращаемся к исходным фотографиям и вставляем содержимое буфера: наш новый фон. Осуществляется эта операция путем нажатия сочетания клавиш Ctrl+V или найдя пункт Paste в меню Edit (Редактирование).

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

Устанавливаем размер изображения

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

Меняем цвет

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

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

Дополнительные элементы

Само собой разумеется, что в композицию могут быть добавлены еще элементы, располагаться они могут и как дополнительные детали фона - выше основного слоя изображения, и добавляться на передний план в качестве деталей антуража. Если что-то не влезает или, наоборот, остается слишком много лишнего места, вам потребуется поменять размер и пропорцию рабочего поля - это делается легко и просто через главное меню Image>Canvas Size.

Замена фона на белый

Ну и напоследок мы расскажем о том, как в "Фотошопе" заменить фон на белый.
Белый фон для вашего изображение может быть назначен посредством нескольких объединённых друг с другом способов.

Самым простым способом является применение специального инструмента "Заливка" (клавиша G). Выберите через палитру необходимый вам цвет и нажмите на область, которую собираетесь закрасить. Этот способ не подойдет, если на переднем плане присутствует много мелких деталей. В этом случае вы вынуждены будете закрасить каждую часть в отдельности. На это может потребоваться немало драгоценного времени. Плюс ко всему, может остаться незакрашенная часть. В этом случае вы вынуждены будете закрашивать ее вручную с использованием такого инструмента, как "Кисть" (B) или "Ластик" (E).

Заключение

Теперь вы знаете, как заменить фон на фотографии в "Фотошопе".Если у вас не получается самостоятельно выполнить какие-либо операции, советуем перечитать наш урок еще раз. Существуют даже учебники, которые помогут освоить программу на профессиональном уровне. Для простоты освоения можно русифицировать программу с помощью специальных языковых пакетов. Дополнительное ПО можно найти на официальном сайте.

Онлайн-программма Pixir-делаем прозрачный фон у картинки.

Сергей Фещуков

Бывает попадается очень подходящая картинка для вашего поста и всё бы хорошо... Но фон картинки не подходит под фон блога или блока с текстом. Явно ни у одного меня такая проблема и ни у одного меня фон не белый, который подходил бы в большинстве случаев. Мне нужен прозрачный фон !

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

Как сделать прозрачный фон у картинки

Возьмём в пример одну простую картинку в формате.jpg (вообще формат не важен особо):

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

Загружаем наше изображение. Справа в окошке "Слои" появится слой "Фоновый", на котором замочек (не дает удалять фон картинки).

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

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

Теперь удаляем фон нажатием кнопочки "Delete" и получаем нужное нам изображение с прозрачным фоном.

В итоге на выходе получаем то же изображение с прозрачным фоном.

Единственный минус Pixlr - нельзя изображение сохранить в формат.gif, который тоже сохраняет прозрачный фон, но намного легче, чем формат.png. Но если нет другого выхода, почему бы не воспользоваться этим?

спасибо Натальи Петровой