Форум: "Media";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
ВнизTBitmap и Альфаканал Найти похожие ветки
← →
DevilDevil © (2006-10-05 09:56) [0]Необходимо реализовать альфаканал для Битмапа. Пробовал использовать четвёртый байт в 32-х битном. Безрезультатно. Помогите, чем сможете. Желательно с примерчиком
← →
SamBrook © (2006-10-05 11:20) [1]
> Необходимо реализовать альфаканал для Битмапа. Пробовал
> использовать четвёртый байт в 32-х битном. Безрезультатно.
> Помогите, чем сможете. Желательно с примерчиком
> <Цитата>
Как пробовали и что не получилось?
Справку по функции AlphaBlend читали?
← →
DevilDevil © (2006-10-05 11:57) [2]> Справку по функции AlphaBlend читали?
Раньше не читал, сейчас прочёл, понял, что к Битмапам это не имеет отношения.
> Как пробовали и что не получилось?Формирую Битмап, PixelFormat := pf32bit;
PRGBQuad := Битмап.Scanline[Битмап.Height-1];
for i := 1 to Битмап.Height*Битмап.Width do
begin
PRGBQuad^.rgbReserved := 128;
inc(PRGBQuad);
end;
Canvas.Draw(0, 0, Битмап);
← →
Sambrook © (2006-10-05 12:38) [3]
> > Справку по функции AlphaBlend читали?
> Раньше не читал, сейчас прочёл, понял, что к Битмапам это
> не имеет отношения.
Ошибаетесь, самое непосредственное.
Вместо Canvas.Draw:
var
blend:BLENDFUNCTION;
.....
with blend do begin
BlendOp:=AC_SRC_OVER;
BlendFlags:=0;
AlphaFormat:=AC_SRC_NO_PREMULT_ALPHA;
SourceConstantAlpha:=255; //другие моды в справке
end;
AlphaBlend(Canvas.Handle,
0,0,100,100,
Битмап.canvas.handle
0,0,Битмап.width,Битмап.height);
← →
Ketmar © (2006-10-05 16:27) [4]а чем GrahpicsEx не устраивает?
← →
Sambrook © (2006-10-05 17:50) [5]
> а чем GrahpicsEx не устраивает?
Хм. Вообще то она платная...
← →
Ketmar © (2006-10-05 17:57) [6]>[5] Sambrook(c) 5-Oct-2006, 17:50
>Хм. Вообще то она платная...
ЧЕГО??? с каких это пор GPL-проекты стали платными???
← →
Ketmar © (2006-10-05 17:57) [7]ой. дико извиняюсь. не GraphicsEx, а Graphics32, конечно. %-))
← →
DevilDevil © (2006-10-06 13:38) [8]
> Ketmar © (05.10.06 16:27) [4]
> а чем GrahpicsEx не устраивает?
Разбираться Долго, быстрее вручную.
> Sambrook © (05.10.06 12:38) [3]
Я, если честно, на BCB программирую, там траблы с линковкойAlphaBlend
[<-- жуть какая!]. Щас вот попробую на Delphi, потом может быть...
← →
Ketmar © (2006-10-06 13:49) [9]>[8] DevilDevil(c) 6-Oct-2006, 13:38
>Разбираться Долго, быстрее вручную.
не сомневаюсь. намного быстрее иметь "траблы с линковкой", нежели использовать простой класс TBitmap32. продолжай в том же духе.
← →
DevilDevil © (2006-10-06 13:53) [10]Попробовал в Delphi, хочешь верь, хочешь, не верь... вообще ничего не показывает... Заменил строки на Canvas.Draw - битмап отображается. Вывод: как то не так использую
AlphaBlend
:Windows.AlphaBlend(Canvas.Handle, 0,0,100,100, Bitmap.canvas.handle, 0,0,Bitmap.width,Bitmap.height, blend);
P.S. в моей Win32SDK об AlphaBlend ни слова...
← →
DevilDevil © (2006-10-06 13:55) [11]> Ketmar © (06.10.06 13:49) [9]
Намного быстрее самому написать процедуру смешиваний Битмапов, чем переделывать весь проект под простой класс TBitmap32. Продолжай занудничать.
← →
Ketmar © (2006-10-06 14:01) [12]>[11] DevilDevil(c) 6-Oct-2006, 13:55
чем больше тебя читаю, тем больше убеждаюсь, что Ф. резко отрицательно влияет на моск. увы. убедил, специально для тебя допишу игнор в CDM.
← →
DevilDevil © (2006-10-06 14:07) [13]> Ketmar © (06.10.06 14:01) [12]
Грубите, батенька...
← →
Sapersky (2006-10-06 17:05) [14]P.S. в моей Win32SDK об AlphaBlend ни слова...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6ig4.asp
Страницы: 1 вся ветка
Форум: "Media";
Текущий архив: 2007.06.24;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.261 c