![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TBitmap и Альфаканал
DevilDevil © (2006-10-05 09:56:00)Необходимо реализовать альфаканал для Битмапа. Пробовал использовать четвёртый байт в 32-х битном. Безрезультатно. Помогите, чем сможете. Желательно с примерчиком
Sapersky (2006-10-06 17:05:00) [1]P.S. в моей Win32SDK об AlphaBlend ни слова...
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/gdi/bitmaps_6ig4.asp
DevilDevil (2006-10-06 14:07:00) [2]> Ketmar © (06.10.06 14:01) [12]
Грубите, батенька...
Ketmar (2006-10-06 14:01:00) [3]>[11] DevilDevil(c) 6-Oct-2006, 13:55
чем больше тебя читаю, тем больше убеждаюсь, что Ф. резко отрицательно влияет на моск. увы. убедил, специально для тебя допишу игнор в CDM.
DevilDevil (2006-10-06 13:55:00) [4]> Ketmar © (06.10.06 13:49) [9]
Намного быстрее самому написать процедуру смешиваний Битмапов, чем переделывать весь проект под простой класс TBitmap32. Продолжай занудничать.
DevilDevil (2006-10-06 13:53:00) [5]Попробовал в 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 ни слова...
Ketmar (2006-10-06 13:49:00) [6]>[8] DevilDevil(c) 6-Oct-2006, 13:38
>Разбираться Долго, быстрее вручную.
не сомневаюсь. намного быстрее иметь "траблы с линковкой", нежели использовать простой класс TBitmap32. продолжай в том же духе.
DevilDevil (2006-10-06 13:38:00) [7]
> Ketmar © (05.10.06 16:27) [4]
> а чем GrahpicsEx не устраивает?
Разбираться Долго, быстрее вручную.
> Sambrook © (05.10.06 12:38) [3]
Я, если честно, на BCB программирую, там траблы с линковкойAlphaBlend[<-- жуть какая!]. Щас вот попробую на Delphi, потом может быть...
Ketmar (2006-10-05 17:57:00) [8]>[5] Sambrook(c) 5-Oct-2006, 17:50
>Хм. Вообще то она платная...
ЧЕГО??? с каких это пор GPL-проекты стали платными???
Ketmar (2006-10-05 17:57:00) [9]ой. дико извиняюсь. не GraphicsEx, а Graphics32, конечно. %-))
Sambrook (2006-10-05 17:50:00) [10]
> а чем GrahpicsEx не устраивает?
Хм. Вообще то она платная...
Ketmar (2006-10-05 16:27:00) [11]а чем GrahpicsEx не устраивает?
Sambrook (2006-10-05 12:38:00) [12]
> > Справку по функции 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);
DevilDevil (2006-10-05 11:57:00) [13]> Справку по функции 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 11:20:00) [14]
> Необходимо реализовать альфаканал для Битмапа. Пробовал
> использовать четвёртый байт в 32-х битном. Безрезультатно.
> Помогите, чем сможете. Желательно с примерчиком
> <Цитата>
Как пробовали и что не получилось?
Справку по функции AlphaBlend читали?