下面是测试代码,经过优化后主要是重设png图像大小,严重影响速度,一万字可能需要5秒左右,解决方案,自己写一个png文件的解析生成单元,png格式文件还是比较简单的,如果单纯生成一个可调用的字体png图像文档,只需要包含必要的四个区块就可以了,(其实是两个,其他两个一个是固定的头部信息,一个是固定的尾部信息),关于png分析网上文档很多,不做分析,贴出原始FireMonkey的TBitmap测试代码,需要注意的是要使用delphi 10.2版本以上,因为其他低版本TBitmap不支持多线程,再主线程调用也会严重影响界面元素,特别是再手机设备上,就算成功了,图像也会莫名其妙的出现一些污点,不适合生成字体使用........
unit Unit1;
interface
uses
System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs,
FMX.Controls.Presentation, FMX.ScrollBox, FMX.Memo, FMX.StdCtrls, PXL.Fonts.FreeTypeH, Unit2;
type
TForm1 = class(TForm)
Memo1: TMemo;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
FTLib: PFT_Library;
FFTFace: PFT_Face;
public
{ Public declarations }