![]() |
|
panel görüntüsünü alıp veritabanına kaydetme - Baskı Önizleme +- Delphi Can (https://www.delphican.com) +-- Forum: Delphi (https://www.delphican.com/forumdisplay.php?fid=3) +--- Forum: Genel Programlama (https://www.delphican.com/forumdisplay.php?fid=6) +--- Konu Başlığı: panel görüntüsünü alıp veritabanına kaydetme (/showthread.php?tid=4791) |
panel görüntüsünü alıp veritabanına kaydetme - erdogan - 03-05-2020 Arkadaşlar, formumda bir panel var görüntüsünü alıp veritabanına nasıl kaydedebilirim ? aşağıdaki kod ile deniyorum fakat, TBlobField(Panel1.Handle).SaveToStream(Stream); bu satırda hata alıyorum. Teşekkürler. procedure TForm1.Button2Click(Sender: TObject); var Dosya: TMemoryStream; Jpeg: TJpegImage; Stream: TMemoryStream; begin Jpeg := TJpegImage.Create(); try Stream := TMemoryStream.Create(); try TBlobField(Panel1.Handle).SaveToStream(Stream); Stream.Position := 0; Jpeg.LoadFromStream(Stream); Image1.Picture.Assign(Jpeg); finally Stream.Free(); end; finally Jpeg.Free(); end; end; panel görüntüsünü alıp veritabanına kaydetme - mrmarman - 03-05-2020 Panel1.Handle değil de veritabanınızın resmi sakladığı field olmasın orası? FieldbyName('resim') gibisinden... Cvp: panel görüntüsünü alıp veritabanına kaydetme - erdogan - 03-05-2020 (03-05-2020, Saat: 11:51)mrmarman Adlı Kullanıcıdan Alıntı: Panel1.Handle değil de veritabanınızın resmi sakladığı field olmasın orası? FieldbyName('resim') gibisinden... Merhaba, Evet öylede panelin resmini nasıl alabilirim hocam ? Teşekkürler. panel görüntüsünü alıp veritabanına kaydetme - mrmarman - 03-05-2020 Buradan yürüyebilirsiniz...procedure TForm1.Button2Click(Sender: TObject); var PanelDC : HDC; Bitmap : TBitmap; begin Bitmap := TBitmap.Create; try Bitmap.PixelFormat := pf24bit; Bitmap.SetSize( Panel1.Width, Panel1.Height ); PanelDC := GetDC( Panel1.Handle ); BitBlt( Bitmap.Canvas.Handle, 0, 0, Panel1.Width, Panel1.Height, PanelDC, 0, 0, SRCCOPY ); ReleaseDC( Panel1.handle, PanelDC ); Image1.Picture.Graphic := Bitmap; finally Bitmap.Free; end; end; Burada JPG olarak çıktı almak istiyorsanız Jpeg.Assign( Bitmap ); ile içine alıp Jpeg.SaveToFile olarak Jpeg formatında kayıt yapabilirsiniz. Çıktılarınız hangi format olursa olsun altyapıyı Bitmap kurarsanız başınız ağrımaz. Eklemeyi unutmuşum : Yukarıdaki işlem VCL formlar için geçerli. FMX olsaydı ( FMX Windows veya Android ) o zaman iş çok daha pratik idi.. procedure TForm1.Button2Click(Sender: TObject); begin Image1.Bitmap := Panel1.MakeScreenshot; end; Cvp: panel görüntüsünü alıp veritabanına kaydetme - erdogan - 03-05-2020 (03-05-2020, Saat: 12:44)mrmarman Adlı Kullanıcıdan Alıntı: Çok teşekkür ederim hocam oldu. |