Главная страница
    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.44 MB
Время: 0.007 c
4-99398
stecoff
2002-11-14 15:43
2002.12.30
Работа с arj


14-99255
Yury
2002-12-11 08:49
2002.12.30
PDF -> Word


14-99301
Arkan
2002-12-09 23:02
2002.12.30
Про форум!


3-98972
Kirill S.
2002-12-10 09:33
2002.12.30
сортировка DataSet


7-99389
LexusU
2002-10-25 11:44
2002.12.30
Отключение/перезагрузка компа в 2000/NT





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский