|
먼저 시도1이 안되는 이유가 궁금하네요
질문
brush->style=bsClear 가 왜안먹힐까?
답변
Canvas->Brush->Style=bsClear로 설정하고 Rectangle를 그렸죠
Brush Style을 화면에 그리는 내용에 대한 것인데
bsClear는 그릴때
- 안쪽에 내용을 삭제하는것이 아니라
- 안쪽에 내용을 가만히 둔다,건드리지 않는다는 뜻입니다.
즉 bsClear로 해서 그리면 안쪽에는 아무변화가 없습니다.
그럼 사각형만 나타나려면 어떡해 해야하는가?
Transparent 속성을 이용합니다.
Transparent 는 Default로 bitmap의 (0,0)의 맨첫번째 pixcel에 있는 색상과
같은 색상을 모두 부모색상으로 바꿔줍니다.
만약 내가 원하는 색상을 Transparent하시려면
아래와 같이 하시면 됩니다.
Image1->Picture->Bitmap->TransparentColor=clYellow;
Image1->Transparent=true;
그러므로 사각형만 그리고 투명하게 하려면
사각형부분을 제외한 다른부분의 색상이 모두 똑같아야 합니다.
그러므로 전체를 흰색이나 단색으로 Brush->Style=bsSolid 로 그려주므로 전체 이미지를 초기화 한후
그위에 배경색과 다른색상으로 사각형으로 Brush->Style=bsClear 로 그려주면 됩니다.
그럼....
romio 님이 쓰신 글 :
: 목적: 이미지 위에 Rectangle (사각형) 영역표시 하기;
:
: 시도1: imge1 콤포넌트에 스트림을 이용해서 JPEG이미지를 뿌렸습니다.
: 이런 경우 같은 image1-> canvas 를 이용해서 rectangle 그릴려니 에러가 뜹니다.
:
: 시도2:그래서 Layer 개념으로 같은 크기의 image2 컴포넌트를 덮어서..
: rectangle를 그렸더니 image1의 JPEG 이미지가 가려지더군요..
: 그래서 canvas->brush->style=bsClear;를 했는데 안 먹히더라구요... (JPEG이미지를 흰색으로 덮여진상태) property 설정 순서가 있는 걸까요? ^^;;;
: 또, Image2->transparent=true; 했더니 rectangle 안쪽면만 JPEG 이미지가 보이고 외곽쪽은 계속 흰색..
: 시도3: shape 컴포넌트를 이용하여 rectangle 을 그려서 만족하는 결과를 얻었습니다.
:
: 질문: 시도2에서 brush->style=bsClear 왜 안먹힐 까요..?
: Image 컴포넌트에서 rectangle pen 부분만 나타내고 전체를 투명하게( 이미지에 특정역역표시결과) 얻을 수 있을까요?
|