그림파일을 불러와서 원하는 위치에 위에 글씨나 도형을 출력하는데요
image1에는 그림파일을 하나 넣고 투명으로 image2를 겹쳐 놓고
image2.canvas에 마우스 클릭 위치에 글씨나 도형을 출력했는데
어떤 경우에 image2.canvas의 내용을 한번에 지우려면 어떻게 하나요?
또 제가 다음처럼 코딩을 했는데 같은 그림인데 두 폼에서 글씨 위치랑 크기가 다르게
나타나거든요. 왜 그럴까요? 도움 말씀 부탁드립니다. 이미지 작업은 처음이라서......
procedure TFImagePosition.Draw(name,x0,y0:string);
var
x,y,x1,y1,x2,y2:integer;
begin
x := StrToInt(x0);
y := StrToInt(y0);
x2 := round((x* FImageinfo.Image2.Width)/FMain.Image2.Width);
x := x2;
y2 := round((y* FImageinfo.Image2.height)/FMain.Image2.height);
y := y2;
x1 := x+FMain.Image2.Canvas.TextWidth(name)+4;
y1 := y+FMain.Image2.Canvas.TextHeight(name)+4;
FImageinfo.Image2.Canvas.Font.Size := FMain.Image2.Canvas.Font.Size;
FImageinfo.Image2.Canvas.Font.Color := clRed;
FImageinfo.Image2.Canvas.Pen.Color := clRed;
FImageinfo.Image2.Canvas.Pen.Width := 4;
FImageinfo.Image2.Canvas.Ellipse(x-1,y-1,x+1,y+1);
FImageinfo.Image2.Canvas.Rectangle(x+3,y+3,x1,y1);
FImageinfo.Image2.Canvas.TextOut(x+4,y+4,name);
end;
Image1과 Image2의 Canvas위치(좌표)가 틀린경우는 AutoSize나 Stretch를 확인해보세요.
만약 Stretch를 그림이 있는 Image1에 주었다면 실제 이미지 크기에 비례해서 작아지든 커지든 할겁니다.
크기야 상대적 비율로 주면 되는데 폰트 크기까지 보기는 곤난합니다,
Image3늘 만들어 둘을 합성하게 하시는게 좋을 듯합니다