![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Alpha канал
NeiL © (2008-02-01 20:30:00)Народ, может кто знает как определить Alpha канал на Bitmape. Очень надо (поделитесь ссылками на эту тему). Заранее благодарю.
homm (2008-02-01 22:43:00) [1]> [5] _Mike_ (01.02.08 22:39)
> При 32бит на пиксель 1 байт (старший) и есть собственно альфа-канал
Смотря где и для кого. Против [1] зря споришь.
homm (2008-02-01 22:41:00) [2]
ReadFile(handle, pBits^, header.Width * header.Height * header.PixelDepth div 8 , dwRead, nil);
alpha := header.PixelDepth = 32;
еще вот этот фрагмент не понял:
if alpha then
for y := 0 to header.Width * header.Height - 2 do
begin
pBits^[y][0] := pBits^[y][0] * pBits^[y][3] div 255;
pBits^[y][1] := pBits^[y][1] * pBits^[y][3] div 255;
pBits^[y][2] := pBits^[y][2] * pBits^[y][3] div 255;
end;
Т.е. если картинка с альфаканалом, портим другие каналы, как если бы мы смешивали картинку с черныс фоном? Зачем?
_Mike_ (2008-02-01 22:39:00) [3]
> который не предполагает использования альфа-канала.
Еще как предполагает. При 32бит на пиксель 1 байт (старший) и есть собственно альфа-канал
homm (2008-02-01 22:35:00) [4]> [3] easy © (01.02.08 21:54)
> http://dfc.com.ru/?sid=2&id=18&itemid=42
case header.PixelDepth of
32: begin
ReadFile(handle, pBits^, header.Width * header.Height * 4, dwRead, nil);
alpha := true;
end;
24: ReadFile(handle, pBits^, header.Width * header.Height * 3, dwRead, nil);
16: ReadFile(handle, pBits^, header.Width * header.Height * 2, dwRead, nil);
end;
Ужас какой-то :(
easy (2008-02-01 21:54:00) [5]http://dfc.com.ru/?sid=2&id=18&itemid=42
homm (2008-02-01 21:47:00) [6]> Народ, может кто знает как определить Alpha канал на Bitmape.
Что есть в твоем понимании Bitmap?
Юзай Graphics32.
ProgRAMmer Dimonych (2008-02-01 21:20:00) [7]Упрощённо говоря, Bitmap отображает графику в формате BMP, который не предполагает использования альфа-канала.