unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Image1: TImage;
    Edit1: TEdit;
    Edit3: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:integer;
c:char;
begin
Image1.Picture.LoadFromFile('shablon.bmp');
x:=2;
for c:='!' to 'ÿ' do
with image1.Canvas do
begin
font.Name:=(edit1.Text);
font.Size:=12;
font.Style:=[fsBold];
font.Color:=stringtocolor(edit3.Text);
textout(x*20-trunc(textwidth(c)*1.5),10-(textheight(c)div 2),c);
x:=x+1;
end;
for y:=0 to x*20 do
for z:=0 to 20 do
if image1.Canvas.Pixels[y,z]=stringtocolor(edit3.Text) then
begin
if image1.Canvas.Pixels[y-1,z]=clWhite then
image1.Canvas.Pixels[y-1,z]:=clBlack;
if image1.Canvas.Pixels[y-1,z-1]=clWhite then
image1.Canvas.Pixels[y-1,z-1]:=clBlack;
if image1.Canvas.Pixels[y+1,z-1]=clWhite then
image1.Canvas.Pixels[y+1,z-1]:=clBlack;
if image1.Canvas.Pixels[y,z+1]=clWhite then
image1.Canvas.Pixels[y,z+1]:=clBlack;
if image1.Canvas.Pixels[y,z-1]=clWhite then
image1.Canvas.Pixels[y,z-1]:=clBlack;
if image1.Canvas.Pixels[y+1,z+1]=clWhite then
image1.Canvas.Pixels[y+1,z+1]:=clBlack;
if image1.Canvas.Pixels[y+1,z]=clWhite then
image1.Canvas.Pixels[y+1,z]:=clBlack;
if image1.Canvas.Pixels[y-1,z+1]=clWhite then
image1.Canvas.Pixels[y-1,z+1]:=clBlack;
end;
image1.picture.SaveToFile(edit1.text+'.bmp');
end;

procedure TForm1.FormActivate(Sender: TObject);
begin
Image1.Picture.LoadFromFile('shablon.bmp');
end;

end.
