Autor Téma: Text do foto na Android  (Přečteno 1443 krát)

Offline Luďan

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
Text do foto na Android
« kdy: 27-06-2016, 11:35:21 »
Hezký den všem,

zkouším pořídít foto, v TImage je pořízený obrázek.
Jak do obrázku vepsat datum a čas pořízení a poté uložit pod jiným názvem ?

Děkuji za nakopnutí.

Offline < z >

  • Administrátoři
  • Guru
  • *****
  • Příspěvků: 1089
  • Karma: 41
    • Verze Delphi: 7, 2010
Re:Text do foto na Android
« Odpověď #1 kdy: 27-06-2016, 13:39:33 »
Nefunguje něco jako "Image.Canvas.TextOut" ?

Případně si projdi celý příklad na kreslení
http://www.fmxexpress.com/cross-platform-firemonkey-drawing-app-demo/

Offline Luďan

  • Nováček
  • *
  • Příspěvků: 2
  • Karma: 0
Re:Text do foto na Android
« Odpověď #2 kdy: 27-06-2016, 13:50:10 »
Pokud to bude pro VCL, tak toto funguje. Načtu obrázek, přidám text a uložím pod jiným názvem.
Jen se to snažím nějak překlopit pro FMX, ale nedaří se. Na odkaz kouknu, děkuji.

Kód: [Vybrat]
procedure TForm12.Button1Click(Sender: TObject);
var  bmpTemp,
     bmpTempJPG   : TBitmap;
     jpgTemp      : TJPEGImage;
     I, J, O, Vyska, Sirka: integer;
     Cas: string;
begin
   Cas := FormatDateTime('dd.mm.yyyy  hh:nn:ss', Now);

   jpgTemp := TJPEGImage.Create;
   jpgTemp.LoadFromFile('c:\pomocny\test.jpg');

   bmpTemp := TBitmap.Create;
   Sirka := jpgTemp.Width;
   Vyska := jpgTemp.Height;
   bmpTemp.Width := jpgTemp.Width;
   bmpTemp.Height := jpgTemp.Height;
   Image1.Width := jpgTemp.Width;
   Image1.Height := jpgTemp.Height;

   bmpTempJPG := TBitmap.Create;
   bmpTempJPG.Assign(jpgTemp);

   bmpTemp.Canvas.StretchDraw(RECT(0,0, jpgTemp.Width, jpgTemp.Height), bmpTempJPG);
   Image1.Canvas.Draw(0, 0, bmpTemp);

   //free the Jpeg and recreate it.
   jpgTemp.Free;

   Image1.Picture.Bitmap.Canvas.Font.Color := clYellow;
   O := SetBkMode(Image1.Picture.Bitmap.Canvas.Handle, TRANSPARENT);
   Image1.Picture.Bitmap.Canvas.Font.Name := 'Tahoma';
   Image1.Picture.Bitmap.Canvas.Font.Size := 14;
   Image1.Picture.Bitmap.Canvas.Font.Color := clBlack;
   I := Vyska - Image1.Picture.Bitmap.Canvas.TextHeight(Cas);
   J := (Sirka - Image1.Picture.Bitmap.Canvas.TextWidth(Cas)) div 2;
   Image1.Picture.Bitmap.Canvas.TextOut(J + 2, I + 2, Cas);
   Image1.Picture.Bitmap.Canvas.Font.Color := clYellow;
   Image1.Picture.Bitmap.Canvas.TextOut(J, I, Cas);
   SetBkMode(Image1.Picture.Bitmap.Canvas.Handle, O);

   bmpTemp.Free;
   bmpTempJPG.Free;

   Image1.Picture.SaveToFile('c:\pomocny\test3.jpg');

Offline František

  • Hrdina
  • ****
  • Příspěvků: 332
  • Karma: 3
    • Verze Delphi: primárne v XE5, občaas 10.1 starter, XE, BDS2006

Offline František

  • Hrdina
  • ****
  • Příspěvků: 332
  • Karma: 3
    • Verze Delphi: primárne v XE5, občaas 10.1 starter, XE, BDS2006
Re:Text do foto na Android
« Odpověď #4 kdy: 06-07-2016, 02:13:24 »
Kód: [Vybrat]
var
  MyRect: TRectF;

begin

   fdrawbox.canvas.BeginScene();
   fdrawbox.canvas.Stroke.Kind := TBrushKind.bkSolid;
   fdrawbox.canvas.StrokeThickness := 1;
   Fill.Color := TAlphaColors.Red;
   MyRect := TRectF.Create(50, 40, 200, 270);
   fdrawbox.canvas.FillText(myRect, 'Hello Text!', false, 100, [TFillTextFlag.ftRightToLeft],
      TTextAlign.taCenter, TTextAlign.taCenter);
   fdrawbox.canvas.endscene
end;

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: