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


  1. var
  2.   mf                     : TMetaFile;
  3.   mfc                    : TMetaFileCanvas;
  4.   fm                     : TdtmGerPosHie;
  5.   FileName               : string;
  6.   ms                     : TMemoryStream;
  7.  
  8. begin
  9.   FTable.Close;
  10.   FTable.EmptyTable;
  11.   FTable.open;
  12.   chart.BeginUpdate;
  13.   chart.FullExpand;
  14.   chart.EndUpdate;
  15.   ms := TMemoryStream.Create;
  16.   MainBitmap := graphics.TBitmap.Create;
  17.   try
  18.     mf := TMetaFile.Create;
  19.     try
  20.       mf.Width := chart.fullwidth;
  21.       mf.height := chart.fullheight;
  22.       mfc := TMetaFileCanvas.Create(mf, 0);
  23.       try
  24.         Chart.PrintToCanvas(mfc);
  25.       finally
  26.         mfc.free; // Copy Image to MF
  27.       end;
  28.       MainBitmap.Height := mf.Height;
  29.       MainBitmap.Width := mf.Width;
  30.       MainBitmap.Canvas.Draw(0, 0, mf);
  31.     finally
  32.       mf.free;
  33.     end;
  34.     FImageWidth := MainBitmap.Width;
  35.     FImageHeight := MainBitmap.height;
  36.     if ((FImageWidth > FCutWidth) or (FImageHeight > FCutHeight)) then CutImageAndSave else
  37.     begin
  38.       ms.clear;
  39.       jpg.Assign(MainBitmap);
  40.       jpg.SaveToStream(ms);
  41.       ms.position := 0;
  42.       FTable.Append;
  43.       TBlobField(FTable.Fields[0]).LoadFromStream(ms);
  44.       FTable.Fields[1].asString := GetDisplayString('#1605');
  45.       FTable.Post;
  46.     end;
  47. .....



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

moze i krace TCanvas -> TBitmap -> TJPEGImage

  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var bmp:TBitmap;
  3.       jpg:TJPEGImage;
  4. begin
  5.   bmp:=TBitmap.Create;
  6.   try
  7.     jpg:=TJPEGImage.Create;
  8.     try
  9.       bmp.Width:=ClientWidth;
  10.       bmp.Height:=ClientHeight;
  11.       bmp.Canvas.CopyRect(ClientRect,Canvas,ClientRect);
  12.       jpg.Assign(Bmp);
  13.       jpg.SaveToFile('c:\aa.jpg')
  14.     finally
  15.       jpg.Free
  16.     end
  17.   finally
  18.     bmp.Free
  19.   end
  20. 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 885 korisnika na forumu :: 19 registrovanih, 0 sakrivenih i 866 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: avijacija, babaroga, Feller, GT, hyla, ILGromovnik, janezek67, Jovan.D, kaskadija, Mrav Obrad, Otto Grunf, procesor, rikirubio, sap, sekretar, Username1000, Utd4ce, zlaya011, Zukov