18-05-2021, Saat: 18:57
(18-05-2021, Saat: 18:47)frmman Adlı Kullanıcıdan Alıntı:uses jpeg; ... .... Function TDataModul.JPEGSentinelsAreOK (Const Filename: TBlobField): Boolean; Var FileStream: TStream; w1: Word; // a "word" is always 2 bytes long w2: Word; Begin ASSERT (SizeOf (Word) = 2); FileStream := TBlobStream.Create (Filename, bmRead); Try FileStream.Seek (0, soFromBeginning); FileStream.Read (w1, 2); FileStream.Position := FileStream.Size - 2; FileStream.Read (w2, 2) Finally FileStream.Free End; Result := (w1 = $D8FF) And (w2 = $D9FF); End; Procedure TDataModul.ResimOku (ResimField: TBlobField; Resim: TPicture); Var jpg: TJPEGImage; stbmp: TStream; bmp: TBitmap; stjpg: TStream; Begin If Resimfield.isnull Then Begin Resim.Assign (Nil); Exit; End; If JPEGSentinelsAreOK (ResimField) Then Begin //1 jpg := TJPEGImage.Create; bmp := Tbitmap.Create; stjpg := TBlobStream.Create (ResimField, bmRead); stbmp := TMemoryStream.Create; jpg.LoadFromStream (stjpg); If Jpg.PixelFormat = jf24bit Then Bmp.PixelFormat := pf24bit Else Bmp.PixelFormat := pf8bit; Bmp.Width := Jpg.Width; Bmp.Height := Jpg.Height; Bmp.Canvas.Draw (0, 0, Jpg); Bmp.SaveToStream (stbmp); Resim.Assign (bmp); bmp.Free; jpg.Free; stjpg.Free; stbmp.Free; End; End;
Datamodul onchange olayındada
Datamodul.ResimOku (Datamodul.QSorguRESIM, image1.picture);
Şeklinde kullanabilirsiniz.
Çok teşekkür ederim.

