Q&A

  • 1개의 Image로 A그림위에, 다른 B그림을 투명처리해서 올리려면..
1개의 Image를 사용해서 A 그림을 먼저 불러온후에, 다른 B그림을 투명처리해서 올리려면 어떻게 해야 하나요. 투명하게 처리해야할 색깔은 검은색이거든요.



canvas를 이용하면 될것 같은데 영 안되네요.

도와주세요.



MainImage.Picture.LoadFromFile('001.bmp');

MaskImage.Picture.LoadFromFile('002.bmp'); // 마스크할 그림(투명색은 검정색)

MainImage.Picture.Bitmap.Canvas.Brush.Color := clBlack;

MainImage.Picture.Bitmap.Canvas.CopyMode := cmSrcPaint;

MainImage.Picture.Bitmap.Canvas.BrushCopy(Rect(78,94,78+360,94+480),MaskImage.Picture.Bitmap,Rect(0,0,360,480),clBlack);

MainImage.Picture.Bitmap.Canvas.CopyRect(Rect(78,94,78+360,94+480),MaskImage.Picture.Bitmap.Canvas,Rect(0,0,360,480));



도와주세요.

1  COMMENTS
  • Profile
    Jon 2000.11.10 03:45
    김광수 wrote:

    > 1개의 Image를 사용해서 A 그림을 먼저 불러온후에, 다른 B그림을 투명처리해서 올리려면 어떻게 해야 하나요. 투명하게 처리해야할 색깔은 검은색이거든요.

    >

    > canvas를 이용하면 될것 같은데 영 안되네요.

    > 도와주세요.

    >

    > MainImage.Picture.LoadFromFile('001.bmp');

    > MaskImage.Picture.LoadFromFile('002.bmp'); // 마스크할 그림(투명색은 검정색)

    > MainImage.Picture.Bitmap.Canvas.Brush.Color := clBlack;

    > MainImage.Picture.Bitmap.Canvas.CopyMode := cmSrcPaint;

    > MainImage.Picture.Bitmap.Canvas.BrushCopy(Rect(78,94,78+360,94+480),MaskImage.Picture.Bitmap,Rect(0,0,360,480),clBlack);

    > MainImage.Picture.Bitmap.Canvas.CopyRect(Rect(78,94,78+360,94+480),MaskImage.Picture.Bitmap.Canvas,Rect(0,0,360,480));

    >

    > 도와주세요.



    var

    Bitmap: TBitmap;

    begin

    MainImage.Picture.LoadFromFile('001.bmp');

    Bitmap := TBitmap.Create;

    Bitmap.LoadFromFile('002.bmp');

    Bitmap.Transparent := True;

    Bitmap.TransParentColor := Bitmap.Canvas.Pixels[0,0];

    Bitmap.TransparentMode := tmAuto;

    MainImage.Canvas.Draw(0, 0, Bitmap);

    end;