Главная страница
    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.049 c
1-99059
V-A-V
2002-12-19 13:37
2002.12.30
Создание документа Оффиса


7-99375
sancho
2002-09-30 15:25
2002.12.30
Как узнать температуру винчестера?


1-99085
19.12.2002
2002-12-19 17:50
2002.12.30
Изменение размера компонента


6-99238
megatrend
2002-10-31 15:20
2002.12.30
twebbrowser


1-99098
Older
2002-12-19 04:19
2002.12.30
подавление сообщения wm_Destroy





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