如何在firemonkey应用程序中绘制高质量的位图文本?

我的表单中有一个TImage,名称为imgStory

我尝试了这段代码,但没有用,imgStory仍然显示为空白!

imgStory.Canvas.Stroke.Kind := TBrushKind.bkSolid;
imgStory.Canvas.StrokeThickness := 1;
imgStory.Canvas.Fill.Color := TAlphaColors.Red;
mRect.Create(100, 229, 300, 250);
imgStory.Canvas.FillText(mRect, 'Hello Text!', false, 100, [TFillTextFlag.ftRightToLeft],
TTextAlign.taCenter, TTextAlign.taCenter);

最佳答案

因此,它是一个Timage,需要先加载或创建位图,然后在位图上绘制。您还需要在绘图命令周围添加begincene和endcene。要从文件创建位图:

imgstory.bitmap.createfromfile(filename);


或者您可以创建一个空白的:

imgstory.bitmap.create(width,height);


然后该图变为:

imgstory.Bitmap.canvas.BeginScene();
imgStory.Bitmap.canvas.Stroke.Kind := TBrushKind.bkSolid;
imgStory.Bitmap.canvas.StrokeThickness := 1;
imgStory.bitmap.Canvas.Fill.Color := TAlphaColors.Red;
mRect.Create(100, 229, 300, 250);
imgStory.bitmap.Canvas.FillText(mRect, 'Hello Text!', false, 100, [TFillTextFlag.ftRightToLeft],
TTextAlign.taCenter, TTextAlign.taCenter);
imgstory.bitmap.Canvas.endscene

10-08 05:06