Главная страница
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.024 c
15-1180521426
lopi
2007-05-30 14:37
2007.06.24
Как это делается?


9-1154696293
Xerx
2006-08-04 16:58
2007.06.24
Искажения при вращении в Ortho в OpenGL


1-1177591470
melcor
2007-04-26 16:44
2007.06.24
idIRC работа через прокси?


2-1180683587
kyn66
2007-06-01 11:39
2007.06.24
Тип "дата" в записи


9-1154734440
Нуб
2006-08-05 03:34
2007.06.24
Как переконвертировать PNG в BMP ?