salut tout le monde,
est ce qu'on peut insérer des images png dans une base de donnée interbase.
(j'utilise delphi 2010, ibx, interbase 6.5)
merci
salut tout le monde,
est ce qu'on peut insérer des images png dans une base de donnée interbase.
(j'utilise delphi 2010, ibx, interbase 6.5)
merci
Bien sur. Il suffit d'utiliser un Blob et d'aller faire un tour dans la FAQ de Delphi
ce n'est pas un problème Interbase mais Delphi , plus particulièrement du TImage qui est (toujours trop) orienté BMP quelques manips et le tour est joué .
Voici les procédures que j'utilise qui je pense , se passent de commentaires
PS . j'ai oublié d'indiquer les uses : GIFImg, Jpeg,pngimage
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 procedure DBImage(I : TImage ; D: TDataset; F : TField); var m : TStream; FirstBytes: AnsiString; begin if F.IsNull then Exit; m := D.CreateBlobStream(F,bmRead); if m <> nil then begin try SetLength(FirstBytes, 8); m.Read(FirstBytes[1], 8); if Copy(FirstBytes, 1, 2) = 'BM' then I.Picture.Graphic := TBitmap.Create else if FirstBytes = #137'PNG'#13#10#26#10 then I.Picture.Graphic := TPngImage.Create else if Copy(FirstBytes, 1, 3) = 'GIF' then I.Picture.Graphic := TGIFImage.Create else if Copy(FirstBytes, 1, 2) = #$FF#$D8 then I.Picture.Graphic := TJPEGImage.Create; try m.Seek(0,0); I.Picture.Graphic.LoadFromStream(m); except end; finally m.Free; end; end; end; procedure Image2DB(I : TImage ; D: TDataset; F : TField); var m : TStream; begin m := D.CreateBlobStream(F,bmRead); if m <> nil then begin try if not i.Picture.Graphic.Empty then i.Picture.Graphic.SaveToStream(m); if not i.Picture.Bitmap.Empty then i.Picture.Bitmap.SaveToStream(m); TBlobField(F).LoadFromStream(m); finally m.Free; end; end; end;
MVP Embarcadero
Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
SGBD : Firebird 2.5, 3, SQLite
générateurs États : FastReport, Rave, QuickReport
OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager