Вниз
Скачать: CL | DM;

Bitmap. Mask. не отображается.   Найти похожие ветки 

← →
DevilDevil ©   (2008-05-06 11:13) [0]

Непонимание вот в чём... думаю, меня быстро ткнут носом в упущение...

есть TBitmap, устанавливаю ему Transparent, у него появляется Маска. Проверяю, действительно создаётся, действительно PixelFormat = pf1bit:

procedure SaveMask(Bmp: TBitmap);
var
 B: TBitmap;
begin
 B := TBitmap.Create;
 B.Handle := Bmp.MaskHandle;
 B.SaveToFile("Mask.bmp");
 B.Free;
end;

Ставлю перед собой задачу отобразить маску на другом битмапе... вместо маски отображается чёрный прямоугольник, не понимаю, почему.

Что-то типа этого:


MaskDC := CreateCompatibleDC(0{DestBitmap.Canvas.Handle});
try
 SelectObject(MaskDC, Bitmap.MaskHandle);

 BitBlt(DestBitmap.Canvas.Handle, X, Y, R.Width, R.Height,  MaskDC, 0, 0, SRCCOPY);
finally
 DeleteObject(MaskDC);
end;


← →
DevilDevil ©   (2008-05-06 11:14) [1]

извиняюсь, с тегами напартачил


← →
tesseract ©   (2008-05-06 17:04) [2]


>  B.Handle := Bmp.MaskHandle;
> B.SaveToFile("Mask.bmp");


Странная такая операция присваивания. Тебе надо не handle присваивать, а маску на B.Canvas отрисовать.


← →
DevilDevil ©   (2008-05-07 14:19) [3]

> tesseract ©   (06.05.08 17:04) [2]

ты недополнял... но это уже не имеет значения.
Вообще говоря, я так и не узнал, как отображать маску... Но я узнад как отображать битмап с учётом маски (функция MaskBlt), что мне в конечном счёте и нужно было.

Тема закрыта.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.013 c
2-1210094060
b86
2008-05-06 21:14
2008.06.01
как сохранить в .txt


15-1208062484
anton773
2008-04-13 08:54
2008.06.01
борьба с пиратством


2-1210153634
Я
2008-05-07 13:47
2008.06.01
Дата создания файла и количество строк?


15-1208123687
bagos
2008-04-14 01:54
2008.06.01
графика


2-1210619333
Nemeziz
2008-05-12 23:08
2008.06.01
Как проверить изменялся ли файл




   Наверх