1
비트 맵과 마스크 (비트 맵도 있음)가 있습니다. 나는 (같은 아래 그림에) 마스크에 비트 맵을 그릴 싶습니다, 어떻게 캔버스에 마스크 비트 맵을 그릴 수 있습니까?
어떻게 Firemonkey 델파이에이 작업을 수행하려면?
비트 맵과 마스크 (비트 맵도 있음)가 있습니다. 나는 (같은 아래 그림에) 마스크에 비트 맵을 그릴 싶습니다, 어떻게 캔버스에 마스크 비트 맵을 그릴 수 있습니까?
어떻게 Firemonkey 델파이에이 작업을 수행하려면?
사용 TBitmap.CreateFromBitmapAndMask()
constructor CreateFromBitmapAndMask(const Bitmap, Mask: TBitmap);
설명서를 말한다
작성된은 TBitmap 마스크에서 레드 채널 값과 동일한 각 색 픽셀의 알파 채널의 값을 갖는다.
그리고 더 :
팁 : 더 나은 결과를 들어, 마스크의 그레이 스케일 이미지를 사용합니다. 그것은 녹색, 빨강, 파랑의 같은 양의 입니다.
팁 : 마스크와 기본 비트 맵의 크기는 동일해야합니다. 그렇지 않으면 새로운은 TBitmap 같은 간단한 테스트에서 0
동일한 크기를 갖게됩니다
procedure TForm19.Button1Click(Sender: TObject);
var
bmp, msk: TBitmap;
begin
bmp := nil;
msk := nil;
try
bmp := TBitmap.Create;
msk := TBitmap.Create;
bmp.LoadFromFile('C:\tmp\Imgs\4.bmp');
msk.LoadFromFile('C:\tmp\Imgs\TestImage04.bmp');
Image1.Bitmap := bmp;
Image2.Bitmap := msk;
Image3.Bitmap.CreateFromBitmapAndMask(bmp, msk);
finally
bmp.Free;
msk.Free;
end;
end;
결과는 다음과 같습니다 : 톰, 작업
감사 매력처럼! –
@ john 당신을 환영합니다! 다행히 도울 수있어. –
한 마디 내 마스크가 투명 + 어둡다. CreateFromBitmapAndMask를 수행하면 결과 이미지가 완전히 투명 해집니다. (내가 무엇을 놓쳤을까요?) –