在delphi中怎么取汉字的点阵 (50分)

  • 主题发起人 主题发起人 wugdoneone
  • 开始时间 开始时间
W

wugdoneone

Unregistered / Unconfirmed
GUEST, unregistred user!
在delphi中怎么取汉字的点阵 详情见本栏问题:怎样把文字转换成图形?
 
问题不明确!说确切一点好吗?
 
用一个点阵字库(wps或ucdos....ETC)
读输入,得到汉字,取内码,在字库中定位
取出字库数据,得到的就是点阵数据,再用
画图函数画出图形。
字库有一般纵排,横排两种,因为dos时为了和打印机
配合有时会做点排列变换,加快速度,如213字库。
24点阵字库一般每字为72字节。
 
读DOS下的点阵字库是比较方便的。
 
我也曾遇到过这种情况,不过我走了一个弯路!实现了,就是把字先写入图片,然后在扫描图片
取出点阵!!!!!
 
试试这个
//==============================================================================
//用三个汉字组成抽象图形********************************************************
//==============================================================================
function TripleCharBMP(const ForeChar, BackChar, AtomChar: string; const Font: TFont; const CharCount: integer): string;
var Image: TImage;
TempStr: string;
i, j: Integer;
begin
Image := TImage.Create(nil);
Image.Picture.Assign(nil);
Image.Canvas.Font.Assign(Font);
Image.Picture.Bitmap.Width := CharCount;
Image.Picture.Bitmap.Height := CharCount;
Image.Canvas.Font.Height := CharCount;
Image.Canvas.TextOut(0, 0, ForeChar);
for i:=1 to Image.Picture.Bitmap.Height do
begin
TempStr := '';
for j:=1 to Image.Picture.Bitmap.Width do
if Image.Picture.Bitmap.Canvas.Pixels[j-1, i-1]=clBlack
then TempStr := TempStr + AtomChar
else TempStr := TempStr + BackChar;
Result := Result + TempStr + #13;
end;
Image.Free;
end;
 
后退
顶部