Précédent   Forum du club des développeurs et IT Pro > Bases de données > Autres SGBD > InterBase
InterBase Forum d'entraide sur le SGBD InterBase de Codegear. Avant de poster -> F.A.Q Interbase, Tutoriels
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 17/10/2011, 17h25   #1
med1112
Membre à l'essai
 
Inscription : juillet 2003
Messages : 41
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 41
Points : 20
Points : 20
Envoyer un message via ICQ à med1112 Envoyer un message via Yahoo à med1112
Par défaut interbase image png

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
med1112 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 08h09   #2
SergioMaster
Modérateur
 
Avatar de SergioMaster
 
Homme Serge Girard
Développeur informatique
Inscription : janvier 2007
Messages : 4 215
Détails du profil
Informations personnelles :
Nom : Homme Serge Girard
Âge : 56
Localisation : France

Informations professionnelles :
Activité : Développeur informatique
Secteur : Industrie

Informations forums :
Inscription : janvier 2007
Messages : 4 215
Points : 7 282
Points : 7 282
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

Code :
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;
PS . j'ai oublié d'indiquer les uses : GIFImg, Jpeg,pngimage
__________________
La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein
J'entends et j'oublie. Je vois et je me souviens. Je fais et je comprends . Confucius
Si votre seul outil est un marteau, vous aurez tendance a ne voir que des clous
SergioMaster est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h20.


 
 
 
 
Partenaires

Hébergement Web