bmp с альфаканалом

  • Автор темы Автор темы viva121
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

viva121

Участник
Топикстартер
Сообщения
4
Реакции
0
Нужно сохранить bmp с прозрачным фоном. В окне сохранения bmp опция сохранения с альфаканалом (в Advanced Modes) - неактивная. Пробовал разные моды - не помогает. Фотошоп - CS2.
Может кто знает в чем дело?
 
Ответ: bmp с альфаканалом

А БМП прозрачность вообще поддерживает?
 
Ответ: bmp с альфаканалом

Может у Вас не RGB? а какое-то другое пространство - grey например?
 
Ответ: bmp с альфаканалом

Сначала надо прозрачность слоя сохранить в альфа-канал: Ctrl+click на слое > Selection > Save selection. Затем избавиться от нее в самом слое: повторить 10 раз дублирование и слияние с нижележащим слоем - Ctrl+E > Ctrl+J. Затем слои сплющить (Flatten Image) и сохранять в BMP формат. В диалоге сохранения выбираете 32 bits и альфа будет в файле.

Все это можно записать в экшн, за исключением операции сохранения в файл. Нажали кнопку - тынц - и готово.
 
Ответ: bmp с альфаканалом

Забыл отметить что изиотизм рулит: автоматическая поддержка сохранения и загрузки premultiplied alpha в Фотошопе для сделала свое дело - народ по-быстрому забыл что такое альфа канал на самом деле. :)
 
Ответ: bmp с альфаканалом

Экскурсия в альфа канал.

Три раза исправлял слово premultiplied - хорошее дело таким словом не назовут. :) Так вот, в изиотическом миру это называется Matting. Однако данный термин обозначает технику где цвет фона фундаментально предопределен: черный. Но может быть и белый.

Дело в том что изображение с альфа каналом не может не иметь какого-либо фона, и поэтому для записи такого изображения в файл приходится композить его пикселы с фоном по процентовкам альфа канала. Например если в качестве фона мы выбрали черный цвет (0,0,0); пиксел имеет цвет 0, 255, 0; альфа канал определяет его прозрачность как 50% - то мы получим цвет пиксела в композиции: 0, 127, 0. Так и запишем в файл. Затем, когда потребуется поместить это изображение на другой фон, мы, используя альфа канал повторим этот же процесс композинга. Например новый фон: белый (255, 255, 255); та же альфа - 50%; цвет того пиксела 0, 127, 0. Получим:

255*50% + (0*50%) = 127
255*50% + (127*50%) = 191
255*50% + (0*50%) = 127

Было 0, 255, 0, стало 127, 191, 127. Визуально это выглядит как слишком темная бахрома вокруг изображения, или темное гало - если границы достаточно размыты (если делали на белом фоне - то наоборот).

Чтобы избавиться от черного в том пикселе 0, 127, 0, сначала умножим его на белый цвет пропорционально данным инвертированного альфа канала в нем, для чего вычислим коэффициент умножения по формуле: 100/(100-А), где А - процентное отношение альфа-канала (или нормализованное 0-1). В этом примере альфа - 50%, поэтому коэффициент = 2. Итого: 0*2 = 0, 128*2 = 255, 0*2 = 0. Было: 0, 255, 0, стало: 0, 255, 0. С этого момента можно композить пиксел с новым фоном на основании данной альфа каналом процентовке.

Таким макаром работает команда Layer > Matte > Remove Black Matte (Remove White Matte - если умножалось на белый фон).

Метод описанный в сообщении номер 4 не является предварительным умножением цвета пикселов на цвет фона по альфа-процентовке. Это т.н. Straight Alpha, то есть техника когда альфа канал и изображение не соответствуют друг другу. Например вы можете залить цветным градиентом полотно документа, а затем изобразить в каналах - альфу и сохранить в файл. Если программа-рендер воспользуется этой альфой, то вы увидите изображение градиента внутри границ альфы на новом фоне. А не воспользуется - таким как оно есть и увидите.

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

Так вот, а вообще технология альфа канала была фундаментально сформулирована в 1984 году товарищами Thomas Porter и Tom Duff в документе "Compositing Digital Images", которую они применяли для съемок спец-эффектов в одной из серий Стар Трека.
 
Ответ: bmp с альфаканалом

Некто CMYK сохраняет альфа-канал в жопеге.Простой и остроумный способ позволяет сохранит место и ресурсы винта. С его позволения:
http://www.designhelp.ru/forum/viewtopic.php?t=124
Метод достоин Нобеля!
 
Ответ: bmp с альфаканалом

Всем спасибо. А Zest - огромное спасибо :) Очень подробно!

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

Все так и сделал. Только, чем не просматриваю, везде вижу фон, даже когда открываю новый bmp в фотошопе. :-( Хотя альфа сама, конечно на месте, только выключенная.
Вообще мне эти bmp для visual basic просили. Там хоть альфа будет работать?
 
Ответ: bmp с альфаканалом

Только, чем не просматриваю, везде вижу фон, даже когда открываю новый bmp в фотошопе
Так и должно быть, и Фотошоп вам показывает слои с прозрачностью на клетчатом фоне. А что вы хотели увидеть - внутренности монитора сквозь прозрачную картинку? :)

Давайте без метафор. Вот например стекло с нанесенным на него рисунком. Можно ли сказать что там, где стекло полностью прозрачно - ничего нет? Нельзя. Потому что там, где стекло прозрачно, свободно от рисунка, там сквозь него видно то, что позади него. То есть, рисунок на стекле всегда накладывается на какой-то фон.

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

Поэтому просмотрщик показывает вам картинку на том фоне, на котором вы ее оставили. Потому что он просто не понимает альфы. Не использует ее. Вполне возможно есть такой вьюер, который покажет альфу и в bmp, и в tga, и в tiff'е.

Что касается Фотошопа, то он не конвертит альфа канал автоматически в прозрачность слоя: с чего вы взяли что открыв bmp с альфой сразу увидите слой, а не фон? Чтобы это получить надо: загрузить селекцию с альфа-канала; вырезать по ней из фона в слой, фон - удалить. Тоже самое с tga и tiff'ами. Альфу в тарге (tga) какой-то Фотошоп подхватывал - но телефизионщики загундели и адобцы это убрали.

Что касается VB, то вам нужна не альфа - а ключевой цвет.
 
Ответ: bmp с альфаканалом

Zest,
На счет внутренностей, смешно ...
В фотошопе хотел увидеть как раз клетчатый фон.
Но теперь похоже, это не важно. В свете ключевого цвета, извиняюсь за каламбур. :)
А можно пожалуйста наводку про ключевой цвет. Я про него ничего не знаю. И как это будет по-английски key color?
 
Ответ: bmp с альфаканалом

Magic Color, это 255, 0, 255 и при условии что: первый (0,0) и последний (Х,Y)пиксел имеют этот цвет; а вся картинка преобразована в Indexed Color и все 256 цветов (Windows Palette). Впрочем, там все запутано. Для режимов 5-5-5, или там 5-6-5 - то есть, когда три канала записываются в 2 байта (high color) есть еще какие-то Color masks - со своими значениями для разных режимов записи. Короче, [th ghjccsim.

Почитал что люди пишут - пишут что для GDI+ можно юзать обычный 32-битный битмап ARGB - то, что выше изложено. Так что если вам программеры сказали "бэмпе с прозрачностью", это значит BMP с альфа-каналом. Можете записать альфу в отдельный grayscale файл - и такой метод используется (split alpha).

Последний раз: в ФШ вы не увидите никакой шахматки после открытия bmp с альфа каналом. Так и должно быть: вы должны увидеть картинку на выбранном фоне (черном), а в каналах - альфа-канал. Вам никакого смысла нет проверять Фотошопом - проверять надо той программой, для которой вы готовите картинки.
 
Ответ: bmp с альфаканалом

Когда вы открываете GIF с прозрачным цветом и видите шахматку - это потому что ФШ услужливо ее показывает вместо того цвета, который обозначен как прозрачный. Так было не всегда - в старых версиях он открывал по-честному: картинка на сером (или любого другого цвета) фоне, а в каналах болталась альфа. Но, дело в том что там нет альфы - в индексе. Поэтому и такой подход был некорректен. Аналогично ФШ подхватывает прозрачные png. Но там альфа есть.

Когда вы открываете psd со слоями и видите какой-то их них на клетчатом фоне, это потому что к изображению в слое програмно применен соответствующий ему альфа канал. То есть, самого альфа канала не видно - но он есть, его не может не быть. Но это - частный случай рендера альфы. Другие программы могут иначе это делать - это не имеет значения. Главное что прозрачность описывается альфа каналом, который вы можете сохранить в bmp формате и отдать программерам.
 
Ответ: bmp с альфаканалом

Zest,
БОЛЬШОЕ человеческое спасибо!!!
 
Ответ: bmp с альфаканалом

А что вы хотели увидеть - внутренности монитора сквозь прозрачную картинку?
Класс.
Как мне сказал один фотограф- а если я буду снимать на прозрачном фоне, обработка файла будет дешевле?
'opa!)'
 
Ответ: bmp с альфаканалом


Не по теме:
Есть такая забава: народ фотографирует то, что находится позади монитора убрав его временнно со своего места, потом ставит обратно, а из фотки делаются обои для рабочего стола и загружаются.


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

И, как уже упоминал, это во многом благодаря тому, что Адоба сделала с Фотошопом и Image Ready. С одной стороны они обрезают возможности чтобы не напрягать пользователя выбором, с другой стороны обучают программу выполнять рутинные операции автоматически.
 
Статус
Закрыто для дальнейших ответов.