Sliku od kanvasa

Sliku od kanvasa

offline
  • prm 
  • Građanin
  • Pridružio: 11 Jun 2006
  • Poruke: 94

Kako da npravim jpg sliku od necega sto nacrtam u kanvasu



Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Evo, ako mozes da razumes.

Uglavnom, prebacis u MetaFileCanvas, koji kopira u MetaFile
Iz MetaFajla mozes da prebacis u TBitmap, iz Bitmapa u TJpegImage


var   mf                     : TMetaFile;   mfc                    : TMetaFileCanvas;   fm                     : TdtmGerPosHie;   FileName               : string;   ms                     : TMemoryStream; begin   FTable.Close;   FTable.EmptyTable;   FTable.open;   chart.BeginUpdate;   chart.FullExpand;   chart.EndUpdate;   ms := TMemoryStream.Create;   MainBitmap := graphics.TBitmap.Create;   try     mf := TMetaFile.Create;     try       mf.Width := chart.fullwidth;       mf.height := chart.fullheight;       mfc := TMetaFileCanvas.Create(mf, 0);       try         Chart.PrintToCanvas(mfc);       finally         mfc.free; // Copy Image to MF       end;       MainBitmap.Height := mf.Height;       MainBitmap.Width := mf.Width;       MainBitmap.Canvas.Draw(0, 0, mf);     finally       mf.free;     end;     FImageWidth := MainBitmap.Width;     FImageHeight := MainBitmap.height;     if ((FImageWidth > FCutWidth) or (FImageHeight > FCutHeight)) then CutImageAndSave else     begin       ms.clear;       jpg.Assign(MainBitmap);       jpg.SaveToStream(ms);       ms.position := 0;       FTable.Append;       TBlobField(FTable.Fields[0]).LoadFromStream(ms);       FTable.Fields[1].asString := GetDisplayString('#1605');       FTable.Post;     end; .....



offline
  • badam 
  • Novi MyCity građanin
  • Pridružio: 26 Maj 2006
  • Poruke: 9

moze i krace TCanvas -> TBitmap -> TJPEGImage

procedure TForm1.Button1Click(Sender: TObject); var bmp:TBitmap;       jpg:TJPEGImage; begin   bmp:=TBitmap.Create;   try     jpg:=TJPEGImage.Create;     try       bmp.Width:=ClientWidth;       bmp.Height:=ClientHeight;       bmp.Canvas.CopyRect(ClientRect,Canvas,ClientRect);       jpg.Assign(Bmp);       jpg.SaveToFile('c:\aa.jpg')     finally       jpg.Free     end   finally     bmp.Free   end end;

offline
  • prm 
  • Građanin
  • Pridružio: 11 Jun 2006
  • Poruke: 94

verovatno

a mozda mogu da citam kanvas piksel po piksel i omah dodam zaglavlje i ostalo prepisem kao piksele samo moram da ......


ionako nije bitno I will C++ as others

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Mislis da je u C++ jednostavnije? eheheheh

offline
  • prm 
  • Građanin
  • Pridružio: 11 Jun 2006
  • Poruke: 94

Definitivno nije ali sta sutra kada delfija vise nebude...


Nazalost jel delfijeva sintaksa je mnogo lepsa....



HH

offline
  • Emil Beli
  • Pridružio: 03 Jan 2005
  • Poruke: 2990
  • Gde živiš: Beograd

Lepota je relativna stvar

Ali... prekinimo sa Off-topic da ne bih morao sam sebe da banujem, a i tebe Very Happy
Znaci, ispod ove poruke samo ono sto je vezano za temu.

Ko je trenutno na forumu
 

Ukupno su 643 korisnika na forumu :: 25 registrovanih, 1 sakriven i 617 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: _Petar, A.R.Chafee.Jr., amaterSRB, babaroga, Botovac, bozidar79, Dorcolac, draganca, elenemste, hatman, Hektor, ibssa, jaeger, LeGrandCharles, Marko Marković, Mercury, mikrimaus, Milos ZA, Mirage 2000N, shaja1, stegonosa, Vlad000, vlvl, Wisdomseeker, yufighter