Q&A

  • 이미지 컴포넌트에서...
이미지 컴포넌트에.. LoadFromFile() 쓰지 않고 이미지를 직접 그려서

넣는 방법을 모르겠네요.ㅠㅠ

프로그램 실행시에 이미지컴포넌트에 흰색이미지가 기본으로 들어가게

하구 싶은데요...

지금은 걍.. 흰색 이미지 파일을 불러오게 해놨는데..

이걸.. 코딩으로 이미지에 흰색을 채워넣구 싶습니다.

고수님들의 조언 부탁드립니당...
8  COMMENTS
  • Profile
    프리맨 2002.10.11 17:58

    이렇게 해보세요.

    image1.Canvas.FillRect(image1.ClientRect);

    이것은 image1에 이미지가 없을때 image1 크기만큼 비트맵을 생성한후
    image1의 브러쉬로 채웁니다.

  • Profile
    홍성락 2002.10.11 05:40
    답변하신것 되는데요.
    이미지를 파일로 읽어거나, 기존 이미지를 Draw로 그렸을경우는
    Image1.Picture := nil; 이것 먼저 해야 할거구요.
    Image1.Canvas.Brush.Color := clWhite;
    일반적으로 공통으로 사용하시려면
        Image1.Picture := nil;
        Image1.Canvas.Brush.Color := clWhite;

    또, 하나는 Transparent 가 True일때도 흰색으로  Brush하면 반영이 안되므로False로 하시면됩니다.
    hsr////////////////////////////////////////////////
  • Profile
    김종화 2002.10.11 05:47
    답변 주셔서 감사합니당.. 에궁.. 제가 잘못썼었군요..

         image_source.Picture.Bitmap.Canvas.Brush.Color := clwhite;
         image_source.Picture.Bitmap.Canvas.FloodFill(10,10,clwhite,fsborder);

    이렇게 비트맵의 캔바스에다가 했었는데.. 안되더라구여.
    그래서. 그냥 이미지의 캔바스에다가 하니깐. 되네요..^^;;

    근데.. 왜.. 비트맵의 캔바스에 하면.. 안나오는지 그 이유가 궁금하네요..

    그 차이점좀 알켜주세요... ^^;;


  • Profile
    홍성락 2002.10.11 06:14
    아래 하신거는 image2.Picture.Bitmap에 이미 이미지가 있을때
    즉, image2.Picture.Bitmap가 nil이 아닐때 적용/수행/실행 됩니다.
    아래 예는 이미 이미지가 있을때 이미지를 없애는게 아니라 흰색으로 덧칠할때입니다.
    image1.Picture.Bitmap.Canvas.Brush.Color := clwhite;
    image1.Picture.Bitmap.Canvas.FillRect(image1.ClientRect);
    hsr////////////////////////////////////////////////
  • Profile
    김수경 2002.10.11 02:28
      // Image1.Picture.Bitmap.Width  := 1024;
      // Image1.Picture.Bitmap.Height := 768;
      Image1.Picture.Bitmap.Canvas.Brush.Color   := clWhite;
      Image1.Picture.Bitmap.Canvas.Brush.Style   := bsSolid;
      Image1.Picture.Bitmap.Canvas.FillRect( Rect( 0, 0, Image1.Picture.Bitmap.Width, Image1.Picture.Bitmap.Height ) );

    잘 돌아가려나 모르겠네염 ^^;
    즐프하세요 ~

  • Profile
    김종화 2002.10.11 03:52
    답변주셔서 감사한데요...

    그건.. 이미지컴포넌트에 기존에 다른 이미지가 있을땐 됩니다

    하지만. 이미지 컴포넌트에. 아무 이미지도 불러오지 않았을때..

    그땐 안됩니다.  제가 하구싶은 경우가 이경우네요....^^;;


  • Profile
    바다를향해 2002.10.11 02:23
    Image.Canvas 가 있는데여...
    이 켄버스를 이용해서 흰색으로 도배(?)를 하세여...
    Pen.Color := clWhite;
    Brush.Color := clWhite;
    Rectangle(0,0,Image.width,Image.height);
    일케 하면 되지 않을까여...^^;;;

  • Profile
    김종화 2002.10.11 03:51
    답변주셔서 감사한데요...

    그건.. 이미지컴포넌트에 기존에 다른 이미지가 있을땐 됩니다

    하지만. 이미지 컴포넌트에. 아무 이미지도 불러오지 않았을때..

    그땐 안됩니다.  제가 하구싶은 경우가 이경우네요....^^;;