请问如何在Image控件上输出不规则大小的字体,如16*14大小的字体!(100分)

  • 主题发起人 主题发起人 xclxd
  • 开始时间 开始时间
怎么没人感兴趣!
 
可以用StrechBlt(Api)函数在另一个Image控件输出的图形进行拉伸操作,Canvas也有类似的函数
 
我刚写的一个程序和你的差不多,方法就是楼上说的,不过我是生成11*16点阵的字库

我用WINDOWS带的矢量字库和标准16点阵字库都试过,可是效果都不是很好
有些字转换得比较好,可有些字就转得很难看了
我看过一个字符叠加器带的软件,就是用标准16点阵字库转化过来,转得效果很不错

我想关键还要加上一些数学算法,对生成的点阵汉字再进行字型优化,不知谁有这方面的研究
 
用WINDOWS的API:
HFONT CreateFontIndirect(
CONST LOGFONT *lplf // pointer to logical font structure
);
//用法:Canvas.Font.Handle := CreateFontIndirect(...);
其中LOGFONT的定义是:

typedef struct tagLOGFONT { // lf
LONG lfHeight;
LONG lfWidth;
LONG lfEscapement;
LONG lfOrientation;
LONG lfWeight;
BYTE lfItalic;
BYTE lfUnderline;
BYTE lfStrikeOut;
BYTE lfCharSet;
BYTE lfOutPrecision;
BYTE lfClipPrecision;
BYTE lfQuality;
BYTE lfPitchAndFamily;
TCHAR lfFaceName[LF_FACESIZE];
} LOGFONT;

显然
LONG lfHeight;
LONG lfWidth;
就是你要的。
注:我没有试过,但应该没问题。(有些字体可能不支持)
 
用LOGFONT可以的,对矢量字体有用
 
多人接受答案了。
 
后退
顶部