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 1127 korisnika na forumu :: 38 registrovanih, 3 sakrivenih i 1086 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: A.R.Chafee.Jr., Andrija357, bigfoot, dankisha, DonRumataEstorski, draganca, dulleo, dushan, esx66, Fog of War, HrcAk47, Joja, Kubovac, Leonov, mercedesamg, Milos82, nemkea71, nenad81, nesa1962, nuke92, ozzy, panonski mornar, procesor, raptorsi, ruger357, S2M, Srle993, StefanopuloZ, t84dar, Trpe Grozni, vathra, Vlad000, Vlada1389, vlajkox, vukovi, Wrangler, zeo, 125