Q&A

  • Timage 를 이용해서 그림을 그리고 파일을 저장하는데에 대한 질문입니다.
제가 데이타를 읽어와 다각형과 다각형 색상을 정해서 그리는 프로그램을 코딩하고 있습니다.

다각형 색상의 진하고 흐림을 통해 특성을 표현하고자

데이타에 따라 흑백음영으로 다각형을 채웠습니다.

코딩 결과 화면으로의 출력은 정상이고 이미지 파일로의 저장도 되는데

2번째 저장부터는 색상이 바뀌어서 저장됩니다.

테스트하기 위해 다음과 같이 코딩 하여 저장하여 보니

  //다각형의 색상을 흑백음영중 하나로 정의
  Image1.Canvas.Brush.Color := $00c4c4c4;
  //임의의 다각형 그림
  Image1.Canvas.Polygon([Point(20,20), Point(20,60), Point(40,60), Point(40,20)]);
  //이미지 파일 저장
  Image1.Picture.SaveToFile('./test.bmp');

역시 마찬가지로 첫번째 실행할때는 정상적으로 흑백으로 저장되나

두번째 실행하면 똑같은 코드와 화면 출력에도 불구하고 다른 색상으로 변경되어 저장됩니다.

해결 방안좀... Timage 를 아에 초기화 할수 없나요?

좋은하루 보내세요~
1  COMMENTS
  • Profile
    석주현 2007.06.05 08:09
    보통 Canvas의 브러시는 마지막 값을 계속 가지고 있기 때문에
    그냥 FillRect 이나 Rectangle로 그리게 되면 마지막 값으로 그리게 됩니다.
    그러니 화면을 흰색으로 지우기 위해선 색을 다시 지정하셔야 합니다.
    아마도 이 문제 같은데 아닌지 모르겠네요.

    전체를 흰색으로 지우려면 아래 루틴을 사용하시면 됩니다.

    <!--CodeS-->
      Image1.Canvas.Brush.Color := $00FFFFFF;
      Image1.canvas.FillRect(Image1.ClientRect);
    <!--CodeE-->