|
질문이 난잡해서 그림으로 표현해봤습니다.
위에 질문을 지우려고 했는데 비번을 설정안해서 못지우는군요
첨부한 그림을 보면 왼쪽처럼 나오는데 오른쪽처럼 처리하고 싶은겁니다
부탁드리겠습니다. 수고들 하십시요
intothefree 님이 쓰신 글 :
: 설명 감사드립니다.
: 그런데 잘 이해가 가지않는부분이 있습니다.
: Transparent 가 부모 dc에 그림을 그리고 제가 지정한 투명색은 그리지 않는다면,
: image1 에 그림조각1을 그리고 나중에 그림조각2를 그림조각3을 계속 덮붙이면
: 그림조각2의 clFuchsia 색상부분이 투명이되어 그림을 그리지 않으니 그림조각1이 비쳐져야 하는데
: 그냥 form1이 보여집니다.
: 혹시 Transparent는 제가 지정한 조각그림 사이즈만큼을 그리고 나중에 그중에서 투명색만 골라서 그리는건가요?
:
: 다시 질문을 정리하자면
: 1) Transparent지정되면 부모DC에 그림을 그리는 도중에 메모리에서 지정색이 빠지는건지
: 2) Transparent지정되면 원래 조각사이즈만큼 영역을 잡아두고 그리는순간 clFuchsia만 빼버려서 바탕이 보이는건지
:
: 결과를 봐서는 2번같은데.. 1번이면 제가 원하는대로 먼저 그린그림이 비쳐야 할거같은데요
: 만약 그렇게 되면 진정한 Transparent 효과가 아닌거같네요 단한번만 사용이 가능한 버튼이같은데만 쓸수있을같은데
:
: 이를 제가 원하는대로 하려면 어떤방법을 써야합니까 ..
: 질문이 깔끔하지 못해서 죄송합니다..
:
:
:
: 장성호 님이 쓰신 글 :
: : [GraphicControl에 대해]
: : TImage는 핸들이 없는 GraphicControl입니다.
: : Canvas가 있지만 진짜 화면에 보여지는 Canvas가 아니죠
: : 즉 TImage는 자신의 Parent의 DC에다가 자신이 가지고 있는 Image를 그립니다.
: : 모든 GraphicControl이 다 그렇습니다.
: :
: : [Transparent에 대해]
: : TImage의 Transparent기능은 자신이 가지고 있는 이미지 중에서
: : 특정 색상은 Parent DC에 그리지 않는다는것입니다.
: :
: : TImage의 경우 Transparent 색상을 특별히 정해주지 않으면
: : {0,0} 위치의 Pixcel 색상이 Transparent 색상이 됩니다.
: : TransparentColor 는 아래와 같이 설정해 줍니다.
: : Image1->Picture->Bitmap->TransparentColor = clFuchsia;
: :
: : [프로그램에 대해]
: :
: : 1. TransparentColor 에 대해
: :
: : 아래와 같이 코딩하면 TransparentColor 는 clFuchsia 이 되겟죠
: : Image1->Canvas->Pen->Color=clFuchsia;
: : Image1->Canvas->Brush->Color=clFuchsia;
: :
: : Image1->Canvas->Rectangle(0,0,Image1->Width,Image1->Height);
: : Image1->Transparent= true;
: : Image1->Picture->Bitmap->TransparentColor = clFuchsia;
: :
: : 프로그램에서 Image1의 Parent 는 Form1 이잖아요
: : Form1의 색상은 clBtnFace이구
: : 그래서 Image1의 clFuchsia 색상 부분은 모두 clBtnFace 색상으로 나온것입니다.
: :
: : 2. TImage는 Transparent 속성에 의해
: : 자신이 가지고 있는 Color를 변경하는것이 아니라
: : Parent에 단지 TransparentColor 색상을 칠하지 않는다..
: : 즉 Image2에 있는 Image1에 copy할때는 색상은 그대로 복사되어서 Image1이 가지고 있게 되죠
: :
: :
: :
: :
: :
: : 박대성 님이 쓰신 글 :
: : : 폼에 이미지 콤포넌트 image1, image2 를 올려놓고
: : :
: : : image2에서 일부를 읽어서 투명을 적용하여 image1에 그려보려고 합니다.
: : : 잘라서 그려보면 투명처리가 되는게 아니고 지정된 색이 바닥색으로 바뀌는 효과가 되는군요
: : :
: : : 샘플을 참조해봤습니다.
: : :
: : : 도형을 그리고 스프라이트를 올려보면 스프라이트 외곽이 투명이 되어 도형이 비치는게 아니고
: : : 바닥회색이 나타나는군요..
: : :
: : : 적용은 transparent 를 true 하고 이미지를 잘라서 붙여본것입니다.
|