Hola JXJ.
Te había entendido mal, lo que hace el codigo anterior es generar las letras al azar y posicionarlas en ondas como en los captchas.
Para las lineas onduladas se me ocurrió este código pensando en las ondas senoidales:
Código Delphi
[-]
...
procedure TForm1.DibujarOnda(PosY,LongitudOnda,Elongacion: Integer; AColor: TColor);
var
P,C: TCoord;
i: Integer;
begin
C.X:= 0;
C.Y:= 0;
for i:= 0 to 360 do
begin
P.X := Round(i * LongitudOnda);
P.Y := Round(Sin(i) * Elongacion);
Image1.Canvas.Pen.Width:= 3;
Image1.Canvas.Pen.Color:= AColor;
Image1.Canvas.MoveTo(P.X, PosY+ P.Y);
Image1.Canvas.LineTo(C.X, PosY+ C.Y);
C:= P;
end;
end;
procedure TForm1.DibujarFondo;
const
Colores: array[1..16] of TColor =(clBlack,clBlue,clGray,clFuchsia,
clGreen,clLime,clMaroon,clNavy,clOlive,clPurple,clRed,clSilver,
clYellow,clTeal,clMaroon,clBlue);
var
i, PosY: Integer;
begin
Randomize;
PosY:= 30;
for i:= 1 to 4 do
begin
DibujarOnda(PosY, Random(50)+20, 20+Random(10), Colores[Random(16)+1]);
Inc(PosY, Random(20)+50);
end;
end;
...
Llamada de ejemplo:
Código Delphi
[-]
procedure TForm1.Button1Click(Sender: TObject);
begin
Image1.Picture.LoadFromFile('C:\TEMP\FONDO.BMP'); DibujarFondo;
end;
Muestra:
Espero que te sirva o al menos te aporte alguna idea....
Un saludo.