Ver Mensaje Individual
  #3  
Antiguo 05-09-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Reputación: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Un ejemplo de como dibujar un texto con textura en un canvas.

Código Delphi [-]
procedure DrawTextTexture(Text: String; Canvas: TCanvas; X, Y: integer; Texture: TBitmap);
var
  Bitmap: TBitmap;
begin
  Bitmap:= TBitmap.Create;

  SetBkMode(Canvas.Handle, TRANSPARENT);
  Canvas.TextOut(20, 20, PCHAR(Text));

  // Invierto la imagen del texto
  Canvas.CopyMode:= cmDstInvert;
  Canvas.Draw(0,0,Bitmap);

  // AND con la textura
  Canvas.CopyMode:= cmSrcPaint;
  Canvas.Draw(0,0,Texture);

  Bitmap.Free;
end;

Forma de uso:
Código Delphi [-]
procedure TForm1.Button3Click(Sender: TObject);
var
  Texture: TBitmap;
begin
  Image1.Canvas.Font.Name:= 'Arial Black';
  Image1.Canvas.Font.Size:= 90;

  Texture:= TBitmap.Create;
  Texture.LoadFromFile('madera.bmp');

  DrawTextTexture('TEXTO', Image1.Canvas, 20, 20, Texture);
  Texture.Free;
end;


Saludos.

Última edición por escafandra fecha: 05-09-2016 a las 00:48:37.
Responder Con Cita