Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Media";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];

Вниз

Альфа-канал в битмапе.   Найти похожие ветки 

 
Карелин Артем   (2002-09-12 12:31) [0]

Итак, есть 2 битмапа. Первый 24 бита, второй 8 бит. Как бы их соеденить в 1, чтобы собственно рисунок был первым битмапом, а альфа-канал был бы получен из второго.
Можно ли в DelphiX использовать рисунки с альфа-каналом?


 
Владимир Васильев   (2002-09-12 12:51) [1]

Поддержка "а" каналов хорошо реализована в G32 - а также слоёв, фильтров и т.д. : http://www.g32.org/graphics32/index.html#Downloads

также рекомендую посмотреть на Graph64 - есть прозрачность и поддержка DelphiX:
http://www.graph64.netgraphics.sk/index.php?subpage=home




 
MBo   (2002-09-12 15:02) [2]

можно примерно так (конечно, размеры Bitmap должны быть одинаковы)

procedure MakeBmpWithAlphaChannel(b32,b24,b8:TBitmap);
type
TRGBQArray=array of TRGBQuad;
var
Info:tbitmapinfo;
Pic:TRGBQArray;
Alpha:array of byte;
i,l:Integer;
begin
l:=b24.Height*b24.Width;
SetLength(Pic,l);
SetLength(Alpha,l);
with Info.bmiHeader do begin
biWidth:=b24.Width;
biHeight:=b24.Height;
biSize:=SizeOf(TBITMAPINFOHEADER);
biCompression:=BI_RGB;
biBitCount:=32;
biPlanes:=1;
biSizeImage:=0;
end;
GetDIBits(b24.Canvas.Handle,b24.Handle,0,b24.Height,Pic,Info,DIB_RGB_COLORS);
GetBitmapBits(b8.Handle,l,Alpha);

for i:=0 to l-1 do
Pic[i].rgbReserved:=Alpha[l-i-1];
//GetDiBits укладывает пикселы с конца

SetDIBits(b32.Canvas.Handle,b32.Handle,0,b24.Height,Pic,Info,DIB_RGB_COLORS);
end;



Страницы: 1 вся ветка

Форум: "Media";
Текущий архив: 2002.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.55 MB
Время: 0.037 c
4-99414
Vasily Terekhov
2002-11-13 10:19
2002.12.30
Перехват сворачивания и восстановления окон


1-99191
Шурик Ш
2002-12-19 10:24
2002.12.30
Обработка событий меню, созданного в процессе работы


3-98979
Oleg_EM
2002-12-10 07:41
2002.12.30
Как обмануть Оracle ?


14-99256
Ketmar
2002-12-08 14:13
2002.12.30
multiple read, exclusive write


4-99407
wandp
2002-11-14 04:57
2002.12.30
Как отправить E-mail.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский