Jump to content

Recommended Posts

Posted (edited)

Всем привет! Позвольте и эту тему апнуть

Не могу поверх фото текст наложить. Пробую так.

Как это необходимо делать верно?

 

AResult.Bitmap - приходит из CameraCapturePhotoReady(Sender: TObject;  const AResult: TfgCameraCaptureResult);

  filename := filename + strDate + '.png';
  var B := AResult.Bitmap;
//  B.Canvas.BeginPaint;
  B.Canvas.Font.Size:= 50;
  B.Canvas.Fill.Color := TAlphaColorRec.Red;
  B.Canvas.Fill.Kind := TfgBrushKind.Solid;
//  var mRect :=B.LogicalBounds;
//  mRect.Width := mRect.Width - mRect.Width * 0.05;
//  mRect.Height := mRect.Height - mRect.Height * 0.05;
  B.Canvas.FillText(B.Bounds, DateTimeToStr(now) ,False, TfgHorizontalAlignment.Right, TfgVerticalAlignment.Bottom);
  B.SaveToFile(filename);
//  B.Canvas.EndPaint;
  TfgAssetsManager.Current.AddBitmap('asset_' + mainf.md5(filename), B);

Edited by Артем
  • Administrators
Posted

Добрый вечер,

12 hours ago, Артем said:

Как это необходимо делать верно?

  1. Создать битмап
  2. Выполнить любую отрисовку поверх битмапа.

Вот пример:

Создал битмап FBitmap.

procedure TForm4.fgFormCreate(Sender: TObject);
begin
  FBitmap := TfgBitmap.Create(100, 100);

  FBitmap.Canvas.BeginPaint;
  try
    FBitmap.Canvas.Font.Size:= 50;
    FBitmap.Canvas.Fill.Color := TAlphaColorRec.Red;
    FBitmap.Canvas.Fill.Kind := TfgBrushKind.Solid;
    FBitmap.Canvas.FillText(FBitmap.Bounds, DateTimeToStr(now) ,False, TfgHorizontalAlignment.Right, TfgVerticalAlignment.Bottom);
  finally
    FBitmap.Canvas.EndPaint;
  end;
end;

И вывожу для проверки через TfgPaintBox:

procedure TForm4.fgPaintBox1Paint(Sender: TObject; const Canvas: TfgCanvas);
begin
  Canvas.DrawBitmap(FBitmap, FBitmap.Bounds);
end;

 

Posted
14 часов назад, Yaroslav Brovin сказал:

Добрый вечер,

  1. Создать битмап
  2. Выполнить любую отрисовку поверх битмапа.

Вот пример:

Создал битмап FBitmap.


procedure TForm4.fgFormCreate(Sender: TObject);
begin
  FBitmap := TfgBitmap.Create(100, 100);

  FBitmap.Canvas.BeginPaint;
  try
    FBitmap.Canvas.Font.Size:= 50;
    FBitmap.Canvas.Fill.Color := TAlphaColorRec.Red;
    FBitmap.Canvas.Fill.Kind := TfgBrushKind.Solid;
    FBitmap.Canvas.FillText(FBitmap.Bounds, DateTimeToStr(now) ,False, TfgHorizontalAlignment.Right, TfgVerticalAlignment.Bottom);
  finally
    FBitmap.Canvas.EndPaint;
  end;
end;

И вывожу для проверки через TfgPaintBox:


procedure TForm4.fgPaintBox1Paint(Sender: TObject; const Canvas: TfgCanvas);
begin
  Canvas.DrawBitmap(FBitmap, FBitmap.Bounds);
end;

 

 

Не выходит image.thumb.png.5dc2d8135fa3da1dae47146f2a8bd274.png

Posted
10 минут назад, Yaroslav Brovin сказал:

Исправлено в 1.7.0.0.

Спасибо. В патч-ноуте читал. Понял что речь о моей беде

  • Yaroslav Brovin changed the title to [TfgCanvas] Не могу поверх фото текст наложить
  • Viktor Akselrod locked this topic
Guest
This topic is now closed to further replies.
×
×
  • Create New...