□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□□■■■□□□□□□□□□□□□□□□□□□□□□
□□□□□□□□□■■■■□□□□■■■■■■■□■■□□□□□□□
□□□□□□□□■■■■■□□■■■■■■■■■■■■■□□□□□□
□□□□□□□■■■■■□□□■■■□□□□□■■■■■□□□□□□
□□□□□□■■■■■□□□□□□□□□□□■■■■■□□□□□□□
□□□□□□■■■■□□□□□□□□■■■■■■□□□□□□□□□□
□□■■■■■■■■■■■■□□□□□■■■■□□□□□□□□□□□
□■■■■■■■■■■■■■□□□□□□■■■□□□□□□□□□□□
□■■■□■■■■□■■■■■■■■■■■■■■■■■■■■■■□□
□□□□□■■■□□■■■□■■■■■■■■■■■■■■■■■□□□
□□□□□■■■■□■■■□■■□□□□■■■■□□□■■■□□□□
□□□□□■■■■□■■■□□□□□□□■■■■□□□□□□□□□□
□□□□□□■■■■■■□□□□□□□□■■■■□□□□□□□□□□
□□□□□□□■■■■■□□□□□□□□■■■■□□□□□□□□□□
□□□□□□□■■■■■■□□□□□□□■■■■□□□□□□□□□□
□□□□□□■■■■■■■■□□□□□□■■■■□□□□□□□□□□
□□□■■■■■■■□□■■□□□□□■■■■□□□□□□□□□□□
□□■■■■■■□□□□□■■■■■■■■■■□□□□□□□□□□□
□□□■■■□□□□□□□□□■■■■■■■□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□■■■□□□□□□□□□□□□□□
□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□□
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
Label1: TLabel;
Edit1: TEdit;
FontDialog1: TFontDialog;
procedure Button1Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure FormClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
i, j, w, h, l, t: Integer;
st: string;
begin
with label1 do
begin
l := Left;
t := Top;
w := Width;
h := Height;
end;
Memo1.Lines.Clear;
for j := t + 5 to h + t - 5 do
begin
st := '';
for i := L to l + w do
begin
if self.canvas.Pixels[i, j] = ClBlack then
begin
st := st + '■'; ;
canvas.Pixels[i + 200, j] := ClBlack;
end
else
st := st + '□';
end;
memo1.Lines.Add(st)
end;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
label1.Caption := edit1.Text;
end;
procedure TForm1.FormClick(Sender: TObject);
begin
FontDialog1.Font := label1.Font;
if FontDialog1.Execute then
label1.Font := FontDialog1.Font;
end;
end.
C#代码
... {
int i, j, w, h, l, t;
l = label1.Left;
t = label1.Top;
w = label1.Width;
h = label1.Height;
string st;
this.richTextBox1.Clear();
Bitmap image = new Bitmap(this.pictureBox1.Width, this.pictureBox1.Height);
Graphics g = Graphics.FromImage(image);
g.DrawString(label1.Text, label1.Font, new SolidBrush(this.ForeColor), 0, 0);
pictureBox1.Image = image;
Bitmap bitmap = (Bitmap)pictureBox1.Image;
Color c;
for (j = 0; j < h ; j++)
...{
st = "";
for (i = 0; i < w; i++)
...{
c=bitmap.GetPixel(i, j);
if (c.ToArgb() != 0)
...{
st = st + "■";
}
else
st = st + "□";
}
richTextBox1.Text += st + " ";
}
}