|
아래 예제는...그냥 TImage 안넣고 폼에 그림을 바로 뿌린 겁니다.
Transparent 가 갑자기 생각이 안나서요.
Canvas만 Image1->Picture->Bitmap->Canvas로 바꾸면 똑같이 될 겁니다.
근데 픽셀로 찍은 그림...이라는 게 무엇인가요? ^^
공부하는이 님이 쓰신 글 :
: 아 배경을 투명하게 하는 옵션이군요
: 이렇게 해도 되네요
: 염치 없지만 픽셀로 찍은 그림과 불러내서 찍은 그림의 차이점은 알수 없을까요?
: 이유도 궁금해서요 ^^
: Julien 님이 쓰신 글 :
: : Transparent 라는 속성이 있습니다.
: : Graphics::TBitmap *bmp1 = new Graphics::TBitmap;
: : bmp1->LoadFromFile(ExtractFilePath(Application->ExeName) + "a.bmp");
: :
: : Graphics::TBitmap *bmp2 = new Graphics::TBitmap;
: : bmp2->LoadFromFile(ExtractFilePath(Application->ExeName) + "b.bmp");
: : bmp2->Transparent = true;
: :
: : this->Canvas->Draw(0, 0, bmp1);
: : this->Canvas->Draw(0, 0, bmp2);
: :
: : delete bmp1;
: : delete bmp2;
: :
: : 공부하는이 님이 쓰신 글 :
: : : a그림은 데이터를 픽셀로 찍어서 만든 그림입니다.
: : : b는 글자만 덮어 씌울 그림입니다.
: : : c는 프로그램으로 덮은건데 그런 모양이 나옵니다.
: : :
: : : a그림을 그냥 그림 파일로 읽으면 상관없이 글자만 잘 써지는데
: : : 픽셀로 찍은 그림은 검은색 배경까지 써지는 이유를 모르겠습니다.
: : : 어떤이유가 있을까요?
: : : 그럼 즐프 되세요
: : :
: : : 소스는 다음과 같이 했습니다.
: : : b그림을 마스크 해서 글자만 만들고
: : : MaskImg->Picture->Bitmap->Mask(clBlack);
: : :
: : : StretchBlt(Image1->Picture->Bitmap->Canvas->Handle, 20, 40, MaskImg->Width, MaskImg->Height,
: : : MaskImg->Picture->Bitmap->Canvas->Handle, 0, 0, MaskImg->Width, MaskImg->Height, SRCAND);
: : : StretchBlt(Image1->Picture->Bitmap->Canvas->Handle, 20, 40, Image2->Width, Image2->Height,
: : : Image2->Picture->Bitmap->Canvas->Handle, 0, 0, Image2->Width, Image2->Height, SRCINVERT);
|