У меня есть прозрачный слой в Photoshop CS5 (так что внутри, он, скорее всего, хранится как неотмноженный компонент RGB плюс альфа-компонент на пиксель).
Теперь я хочу преобразовать это в непрозрачный слой (просто без умножения RGB) + альфа-маску. результат должен выглядеть так же, как оригинал.
Я не могу просто заложить прозрачный слой черным, взять выделение из него как маску и объединить слои, потому что это приведет к предварительному умножению альфа в значениях RGB.
Я надеюсь, что вы понимаете проблему и можете дать мне решение.
Как альтернативное объяснение: я хочу ОБРАТНЫЙ процесс этого:
- создайте новый слой и вставьте любое изображение
- создайте маску с градиентом от белого к черному
- применить маску слоя
Объяснение изображения:
Состояние А:
Состояние Б:
ВАЖНО: слой только для этого примера полностью постоянный красный - но вы можете думать о любом произвольном изображении вместо постоянного красного. Итак, чтобы перейти из состояния A в состояние B, нужно просто применить маску слоя.
Я хочу знать, как перейти из государства B в государство A.
Ответы:
Я полностью понимаю вашу боль. Вот мое решение :)
Извлеките Alpha as Mask Action
Вот что он делает:
Изменить:
я надеюсь, что это помогает :)
источник
Неправильно! Все не так!
Я дурачил себя и вас в процессе: то, что я создал, действительно является предварительно умноженным изображением - не умноженным предварительно на черный, а на белый. Я оставляю этот ответ на усмотрение других.
Мне удалось сделать это так:
И вот как я это сделал:
Это тестовое изображение, которое я использовал. Вид канала в PS выглядит так:
Выбрав отдельные каналы, я скопировал их в отдельные слои, а затем сплющил их на белом фоне, чтобы получить черно-белую карту, как показано здесь:
Я также извлек прозрачность исходного изображения в слой, щелкнув по команде на иконке слоя и заполнив новый слой выделением.
Затем я создал новое изображение с такими же размерами и без прозрачности. Затем я вставил созданные мной слои RGB в соответствующие каналы в новом изображении:
На последнем шаге я «расстегнул» слой, дважды щелкнув по нему, и создал маску слоя, используя альфа-слой из исходного изображения, в результате чего:
Как указано выше, это не создает необумноженное изображение, так как мой пример должен выглядеть следующим образом:
Кто-нибудь умнее меня и может это создать? Я считаю, что без продвинутых пиксельных сценариев это невозможно в Photoshop.
источник
Хорошо - я создал простой фильтр pixelBender, который можно использовать с плагином Photoshop PixelBender (http://labs.adobe.com/downloads/pixelbenderplugin.html), чтобы удалить прозрачность для слоя. вот оно: http://neo.cycovery.com/removeTransparency.pbk
источник
Краткий ответ, основанный на данных ответах и ваших комментариях: вы не можете делать то, что хотите. После того, как вы примените маску, слой визуализируется, а данные невидимого изображения выбрасываются.
РЕДАКТИРОВАТЬ:
Я сделал несколько примеров png-файлов, а затем использовал php для управления ими (исходный код ниже).
Если я создаю png со случайной прозрачностью и сохраняю, когда слой имеет маску, то 100% чистые области (например, из инструмента «Ящик») отображаются белым, независимо от того, включена ли поддержка альфа или нет. Градиенты, которые содержат некоторое количество прозрачности 100%, не отображаются с отключенной альфа.
Если я применяю маску слоя (навсегда), а затем создаю png, то php подает исходное изображение, если альфа отключена.
Таким образом, потенциальный обходной путь для этого - найти программный пакет, который не поддерживает альфа-PNG, и сохранить его оттуда. Что касается восстановления оригинальной маски, я еще не смотрел на это.
Оба примера кода являются проверкой концепции и МЕДЛЕННЫМ.
Чтобы извлечь альфа (примечание: php имеет ограничение GD альфа 128 уровня, а не 256), поэтому некоторая точность теряется. Альфа может быть растянута до 256 с помощью инструмента уровней)
источник
Я узнал, как сделать это в GIMP, это может быть не PhotoShop, но, по крайней мере, он будет делать то, что вы просите. (Как бы я это ни интерпретировал;))
В этот момент у вас остается изображение с маской альфа-канала.
Вы можете пойти еще дальше:
Есть также клип на YouTube, как это сделать.
источник
Это кажется ошеломляюще сложным. Если я правильно понимаю исходный вопрос и его различные пояснения, проблема заключается в том, чтобы взять любое произвольное изображение, содержащее прозрачность, и сделать его полностью непрозрачным, а затем применить исходные альфа-значения в качестве маски, чтобы воссоздать исходный внешний вид.
Если это вопрос, то это очень простой ответ, хотя и немного утомительный.
Скопируйте слой 10 раз. Прозрачность «заполнится» в составном изображении.
Объедините все копии (но НЕ оригинальный слой , который вам понадобится для последних шагов).
Повторите шаги 1 и 2 с объединенным слоем, затем повторите это снова. На этом этапе все пиксели, которые были прозрачны менее чем на 100%, теперь становятся непрозрачными на 100% (если есть некоторые отклонения, просто повторяйте процесс, пока их нет). Это столько информации об изображении, сколько возможно восстановить.
Ctl / Cmd-Нажмите на эскиз исходного слоя, чтобы загрузить его прозрачность.
Выбрав новый непрозрачный слой, щелкните значок маски слоя на панели «Слои».
источник
Хорошо, это на самом деле довольно просто (вы должны игнорировать марширующих муравьев)
Создайте новый слой и полностью залейте его тем цветом, который вы используете (если при выборке берете его из мертвой точки первого изображения)
Затем возьмите свое первое изображение и нажмите CTRL + клик по миниатюре слоя, вы должны увидеть некоторую версию этого:
Как я уже говорил: игнорируйте марширующих муравьев, в CS5 автоматически появляется растушевка.
Затем убедитесь, что у вас выбран заполненный слой и нажмите кнопку маски:
Затем просто скройте нижний слой, и все готово, с тем эффектом, который вам нужен :)
И это как перепроектировать прикладную маску в CS5. Функция выбора слоя CS5 довольно продвинутая, поэтому большую часть времени просто игнорируйте марширующих муравьев, так как они не показывают правильно какие-либо растушевки, которые будут происходить с выделением :)
Надеюсь, что это работает для вас.
источник
То, что вы хотите сделать, легко сделать с помощью плагина, например, плагина Photofreebies «Remove Transparency». Сначала вы щелкаете кнопкой мыши по слою, чтобы выбрать прозрачные пиксели, затем сохраните эту информацию о прозрачности в новом канале, чтобы сохранить ее. Затем вы применяете фильтр «Удалить прозрачность» и видите, что «скрытые» пиксели в вашем слое становятся непрозрачными (довольно интересно посмотреть, как Photoshop разметит ваши 100% прозрачные пиксели BTW). Я действительно хотел бы годами, чтобы это было встроено в Photoshop изначально, но, увы, слишком продвинутый, я думаю.
К сожалению, я не могу найти Photoshop CS6-совместимую версию такого плагина для Mac, поэтому я застрял прямо сейчас. GraphicConverter может сделать это тоже (удалить альфа-канал).
источник
Вот ответ:
Сделайте слой с материалом, который вы хотите на изображении.
Сделайте выбор для желаемого альфа-канала.
Сделайте выделение «маской слоя» для слоя изображения.
Щелкните правой кнопкой мыши маску слоя и «Применить маску слоя».
Теперь волшебство начинается:
Добро пожаловать!
источник