Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.06.24;
Скачать: CL | DM;

Вниз

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 вся ветка

Текущий архив: 2007.06.24;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.023 c
1-1177581677
NKT
2007-04-26 14:01
2007.06.24
документ Word - удаление


8-1160757993
Minesweeper
2006-10-13 20:46
2007.06.24
Flash- обмен информацией с формой


2-1180446877
access
2007-05-29 17:54
2007.06.24
из Аксес в Делфи и обратно в Аксес


3-1175167503
nick_van_rijn
2007-03-29 15:25
2007.06.24
ошибка начала транзакции


2-1180523061
_vl_
2007-05-30 15:04
2007.06.24
Ссылка на массив