Esta é uma dica bastante interessante para geração de imagens para validação, por exemplo. Através de uma procedure, você poderá montar uma imagem com o texto que quizer, com opção de grau de inclinação, e ainda poderá salvá-la.
Veja abaixo o código da procedure:
procedure ConvTextOut(CV: TCanvas; const sText: String; x, y, angle:integer); var LogFont: TLogFont; SaveFont: TFont; begin SaveFont := TFont.Create; SaveFont.Assign(CV.Font); GetObject(SaveFont.Handle, sizeof(TLogFont), @LogFont); with LogFont do begin lfEscapement := angle *10; lfPitchAndFamily := FIXED_PITCH or FF_DONTCARE; end; CV.Font.Handle := CreateFontIndirect(LogFont); SetBkMode(CV.Handle, TRANSPARENT); CV.TextOut(x, y, sText); CV.Font.Assign(SaveFont); SaveFont.Free; end; |
Para usá-la, você precisa passar o Canvas de destino, ou seja, onde seu texto será desenhado. Qualquer componente que possua a propriedade Canvas poderá ser utilizado para tal, como o próprio form, e até um TImage, que nos permitirá salvar a imagem. Veja:
No Form:
ConvTextOut(Canvas, Edit1.Text, 10, 70, 0);
No TImage:
ConvTextOut(Image1.Canvas, Edit1.Text, 20, 10, 315);
Image1.Picture.SaveToFile('C:imagem.bmp');
Para testar, adicionei um Edit, bois Buttons e um TImage, programando cada um dos códigos acima do seu respectivo botão. O resultado foi como a figura abaixo:
Figura 1 - Resultado da Conversão de Texto em Imagem