Q&A

  • Re: 이미지에 텍스트 썼는데요..
연오랑 wrote:

> Canvas.Textout을 사용해서

>

> 이미지에 텍스트를 썼는데

>

> 이때 쓴 텍스트를 자동으로 중앙에 오게 하는 방법이 없나요??

>

> 밑에 질문이랑 겹치지만..

>

> 답변 주시면 바로 삭제하겠습니다..

>

> 그럼 고수님들의 조언부탁드립니다..

///////////////////////////////////////////////////////

아래처럼 계산해도되는데요, 더종은 방법도 있을듯합니다.

procedure TForm1.Button1Click(Sender: TObject);

var

Bmp: TBitmap;

xx, yy : integer;

str : string;

begin

Bmp := TBitmap.Create;

Bmp.LoadFromFile('D:참고자료아이콘아이콘모음모음88전차2.bmp');

Bmp.Canvas.Brush.Style := bsClear;

str := '원하는무자열';

xx := Round(Bmp.Width/2 - Bmp.Canvas.TextWidth(str)/2);

yy := Round(Bmp.Height/2 - Bmp.Canvas.TextHeight(str)/2);

Bmp.Canvas.TextOut(xx,yy,str);

Image1.Picture.Bitmap := Bmp;

SpeedButton1.Glyph := Bmp;

Bmp.FreeImage;

end;

1  COMMENTS
  • Profile
    송재영 2001.09.05 23:33
    안녕하세요.

    해당 방법은 폰트에 대해서 한번 찾아보시지요.

    출력하고자하는 문자열이 어떤 폰트냐에 따라서 픽셀수가 다 틀리거든요.

    그러니까 일단 폰트 정보를 읽어서 한 글자가 차지하는 픽셀수를 구하고 나면 출력하는데 중앙으로 잡든 오른쪽 정열을 하던 쉽게 가능할것 같습니다.

    즐프하세요. ^^



    홍성락 wrote:

    > 연오랑 wrote:

    > > Canvas.Textout을 사용해서

    > >

    > > 이미지에 텍스트를 썼는데

    > >

    > > 이때 쓴 텍스트를 자동으로 중앙에 오게 하는 방법이 없나요??

    > >

    > > 밑에 질문이랑 겹치지만..

    > >

    > > 답변 주시면 바로 삭제하겠습니다..

    > >

    > > 그럼 고수님들의 조언부탁드립니다..

    > ///////////////////////////////////////////////////////

    > 아래처럼 계산해도되는데요, 더종은 방법도 있을듯합니다.

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > Bmp: TBitmap;

    > xx, yy : integer;

    > str : string;

    > begin

    > Bmp := TBitmap.Create;

    > Bmp.LoadFromFile('D:참고자료아이콘아이콘모음모음88전차2.bmp');

    > Bmp.Canvas.Brush.Style := bsClear;

    > str := '원하는무자열';

    > xx := Round(Bmp.Width/2 - Bmp.Canvas.TextWidth(str)/2);

    > yy := Round(Bmp.Height/2 - Bmp.Canvas.TextHeight(str)/2);

    > Bmp.Canvas.TextOut(xx,yy,str);

    > Image1.Picture.Bitmap := Bmp;

    > SpeedButton1.Glyph := Bmp;

    > Bmp.FreeImage;

    > end;