Q&A

  • 아래 질문했었는데여..여백관련 소스올려볼께여..
부탁드립니다.    그방법으로 해봤는데..  위에있는 이미지까지 칠해지더라구여
4  COMMENTS
  • Profile
    이중철 2003.04.16 05:52
    일반은 잘되는데 TImage는 Canvas가 왜곡되어서 잘 안되네요.
    Timage의 스트레치를 풀면 정확히 됩니다.

    var Bit, TarBit : TBitMap;
      R : TRect;
    begin
      Bit := TBitMap.Create;
      Bit.Width := Image1.Width;
      Bit.Height := Image1.Height;
      Bit.Canvas.Brush.Color := ClWhite;
      Bit.Canvas.FillRect(Bit.Canvas.ClipRect);
      R.Top := Image2.Top - Image1.Top;
      R.Left := Image2.Left - Image1.Left;
      R.Right := R.Left + Image2.Width;
      R.Bottom := R.Top + Image2.Height;
      Bit.Canvas.Brush.Color := clBlack;
      Bit.Canvas.FillRect(R);
      TarBit := TBitMap.Create;
      TarBit.Width := Image1.Width;
      TarBit.Height := Image1.Height;
      TarBit.Canvas.CopyRect(Image1.ClientRect, Image1.Canvas, Image1.ClientRect) ;
      TarBit.Canvas.CopyMode := cmSrcPaint                         ;
      TarBit.Canvas.CopyRect(Bit.Canvas.ClipRect, Bit.Canvas, Bit.Canvas.ClipRect);
      Image1.Picture.Bitmap := TarBit;
      TarBit.Free;
      Bit.Free;
    end;

  • Profile
    박상윤 2003.04.16 23:31
    ^^
    초보자들이 해매는 부분입니다.
    Image 와 내부의 bitmap 은 틀립니다.
    Image를 줄이거나 늘렸다 하더라도
    내부의 그림은 그대로 입니다.
    단순히 보여 줄때만....
    그렇게 보이는 것이죠...
    그래서 처리하실때...
    Image1.Picture.bitamp.height 이런식으로 처리 하시면.
    문제가 없을 겁니다.
    그럼
  • Profile
    이중철 2003.04.16 06:25
      TarBit.Canvas.CopyRect(Bit.Canvas.ClipRect, Bit.Canvas,  Bit.Canvas.ClipRect);

       이거 밑에 밑에꺼 첨부하세요...

      Bit.Canvas.Brush.Color := ClRed;  // User Define
      Bit.Canvas.FillRect(Bit.Canvas.ClipRect);
      Bit.Canvas.Brush.Color := clWhite;
      Bit.Canvas.FillRect(R);
      TarBit.Canvas.CopyMode := cmSrcAnd                         ;
      TarBit.Canvas.CopyRect(Bit.Canvas.ClipRect, Bit.Canvas,  Bit.Canvas.ClipRect);

  • Profile
    이중철 2003.04.16 06:06

    =>

      TarBit.Canvas.StretchDraw(TarBit.Canvas.ClipRect , Image1.Picture.Graphic ) ;