Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #5  
Старый 21.02.2011, 09:37
Аватар для NumLock
NumLock NumLock вне форума
Let Me Show You
 
Регистрация: 30.04.2010
Адрес: Северодвинск
Сообщения: 5,426
Версия Delphi: 7, XE5
Репутация: 59586
По умолчанию

вариантов много:



Код:
function CreateCaptcha(s: String): TBitmap;
var
  i: Integer;
  x: Integer;
  y: Integer;
  a: Integer;

  procedure CanvasSetAngle(C: TCanvas; A: Single);
  var
    LogRec: TLogFont;
  begin
    GetObject(C.Font.Handle, SizeOf(LogRec), @LogRec);
    DeleteObject(C.Font.Handle);
    LogRec.lfEscapement:=Trunc(A*10);
    C.Font.Handle:=CreateFontIndirect(LogRec);
  end;

begin
  Result:=TBitmap.Create;
  Result.Canvas.Font.Name:='Comic Sans MS';
  Result.Canvas.Font.Size:=16;
  Result.Width:=2*Result.Canvas.TextWidth('W')*(Length(s)+2);
  Result.Height:=50;
  Result.Canvas.Brush.Color:=clWhite;
  Result.Canvas.FillRect(Rect(0, 0, Result.Width, Result.Height));
  Result.Canvas.Brush.Style:=bsClear;
  for i:=1 to 5*Result.Width do
  begin
    Result.Canvas.Pen.Color:=Random($ffffff);
    x:=Random(Result.Width);
    y:=Random(Result.Height);
    Result.Canvas.MoveTo(x, y);
    Result.Canvas.LineTo(x+Random(2), y+Random(2));
  end;
  x:=Result.Canvas.TextWidth('W');
  for i:=1 to Length(s) do
  begin
    a:=Random(90)-45;
    CanvasSetAngle(Result.Canvas, a);
    Result.Canvas.Font.Color:=Random($ffffff);
    Result.Canvas.TextOut(x, Result.Height div 2, s[i]);
    Inc(x, 2*Result.Canvas.TextWidth('W'));
  end;
  Result.Canvas.Pen.Color:=clBlack;
end;

http://data.cod.ru/90139
__________________
Пишу программы за еду.
__________________
Ответить с цитированием
 


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:38.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025