IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bases de données Delphi Discussion :

Enregistrement d'image dans une table


Sujet :

Bases de données Delphi

  1. #1
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut Enregistrement d'image dans une table
    salut
    je sais que cette question était posé maint fois, et il y a ceux qui sont avec enregistrement d'image dans une base et les contres
    mois aussi j'étais contre, mais la solution de partagé un répertoire, où même de crée un programme comme serveur d'image, me dérange actuellement;
    alors je commence à crusé la question, en utilisant une base FB, mais bien sûr en utilisant des image de type jpeg, à cause de leur taille réduit
    le probléme c'est qu'avec le composant dbimage ne suporte pas cette forme, alors je dois passé par TImage, et chargé manuellemnt, la solution je l'avait trouvé, en rassemblant les morceaux sur le site developpez,faq,google, et autre , le code peut même chargé une image bmp et la convertir en jpeg,
    j'attend vos commentaires, et des idées
    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
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
     
    uses jpeg,ExtCtrls,DB,Classes,Graphics,SysUtils;
    .....
    Procedure FichiertoBlob(blob:TBlobField;Image:TImage);
    procedure BlobToImage(blob:TBlobField;Image:TImage);
    implementation
    const
      pkBitmap = $42;
      pkJPEG = $FF;
    procedure FichiertoBlob;
    var
         s:string;
         Stream:TMemoryStream;
         b:byte;
         Graphic:TGraphic;
         bmp:TBitmap;
    begin
         with DataModule2 do
         if OpenPictureDialog1.Execute then
           begin
             s:=OpenPictureDialog1.FileName;
             if (FileExists(s))  then
               begin
                 Stream:=TMemoryStream.Create;
                 try
                   Stream.LoadFromFile(s);
    //               Stream.Position:=0;
                   Stream.Read(b, 1);
                   if b in [pkBitmap,pkJPEG] then
                     begin
                       Stream.Position:=0;
                       Graphic := TJPEGImage.Create;
                       if b=pkBitmap then
                         begin
                          bmp := TBitmap.Create;
                          try
                            bmp.LoadFromStream(Stream);
                            Graphic.Assign(bmp);
                            Stream.Clear;
                            Graphic.SaveToStream(Stream);
                          finally
                            bmp.Free;
                          end;
                         end
                       else Graphic.LoadFromStream(Stream);
                        Stream.Position:=0;
                        blob.LoadFromStream(Stream);
                        Image.Picture.Graphic := Graphic;
                        Graphic.Free;
                      end;
                 finally
                   Stream.Free;
                 end;
               end;
           end;
    end;
    procedure BlobToImage;
    var
        ss:TMemoryStream;
        Graphic:TGraphic;
        b:byte;
    begin
        if not blob.IsNull then
          begin
            ss:=TMemoryStream.Create;
            try
               blob.SaveToStream(ss);
               ss.Position:=0;
               ss.Read(b, 1);
               Graphic:=Nil;
               case b of
                  pkBitmap:   Graphic := TBitmap.Create;
                  pkJPEG:     Graphic := TJPEGImage.Create;
               end;
               try
                  if Graphic <> nil then
                    begin
                     ss.Position:=0;
                     Graphic.LoadFromStream(ss);
                   end;
                 Image.Picture.Graphic:=Graphic;
               finally
                 Graphic.Free;
               end;
            finally
              ss.Free;
            end;
          end
        else Image.Picture.Graphic:=nil;
    end;
    bon dev à tou le monde
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  2. #2
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    même pas un seul !!!!
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    707
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 707
    Points : 777
    Points
    777
    Par défaut
    Quelle est la question ?

  4. #4
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    J'utilise le composant TJvDBImage, il gère les JPEG

  5. #5
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    et si ton image d'origine était en bmp? avant de l'enregistré dans la base, je la convert en jpeg, pour réduire la taille
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  6. #6
    Membre habitué Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Points : 195
    Points
    195
    Par défaut
    Tu utilises quelle version de Delphi, je ne sais pas si avec la version 2009 on peut gérer le jpeg sans passer par des composant tiers
    A la Recherche du Parfait il faut faire et refaire
    L'homme sage apprend de ses erreurs. L'homme encore plus sage apprend des erreurs des autres.

  7. #7
    Membre émérite Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Points : 2 771
    Points
    2 771
    Par défaut
    delphi 6, mais je crois que c'est valable aussi pour D2006 ; car là j'utlise simplement TStrem,TImage et TFieldBlob
    PAS DE DESTIN, C'EST CE QUE NOUS FAISONS

  8. #8
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    Citation Envoyé par colfire_dev Voir le message
    Tu utilises quelle version de Delphi, je ne sais pas si avec la version 2009 on peut gérer le jpeg sans passer par des composant tiers
    Si l'unité jpeg.pas est présente dans le dossier des sources c'est bon. C'est le cas pour D2007.

  9. #9
    Membre habitué Avatar de colfire_dev
    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Novembre 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Directeur des systèmes d'information

    Informations forums :
    Inscription : Novembre 2007
    Messages : 244
    Points : 195
    Points
    195
    Par défaut
    l'unité y est mais j'ai toujours ce problème non résolu
    A la Recherche du Parfait il faut faire et refaire
    L'homme sage apprend de ses erreurs. L'homme encore plus sage apprend des erreurs des autres.

  10. #10
    Membre habitué
    Développeur .NET
    Inscrit en
    Juin 2002
    Messages
    274
    Détails du profil
    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2002
    Messages : 274
    Points : 174
    Points
    174
    Par défaut
    J'ai eu le même problème récemment : gérer des bmp, des jpg, .....
    Comme dit un peu plus haut, je me cite :
    J'utilise le composant TJvDBImage, il gère les JPEG
    et depuis je n'ai eu aucun souci !
    Si mes souvenirs sont bons l'unité jpeg.pas sert à gérer le format JPEG dans un TImage, pour le TBDImage il faut sans doute l'implémenter toi même.. en qque sorte ce qu'à fait edam non ?

Discussions similaires

  1. Enregistrer une image dans une table MySQL
    Par echap2000 dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/12/2006, 12h22
  2. [C#] Comment enregistrer une image dans une tables access ?
    Par Cazaux-Moutou-Philippe dans le forum Windows Forms
    Réponses: 7
    Dernier message: 16/06/2006, 11h58
  3. Enregistre résulat multiplication dans une table
    Par faranfasi dans le forum Access
    Réponses: 2
    Dernier message: 11/10/2005, 13h04
  4. Savoir si un enregistrement existe déjà dans une table?
    Par danje dans le forum Langage SQL
    Réponses: 8
    Dernier message: 20/08/2005, 10h32
  5. Comment inserer une image dans une table sous sql qerveur
    Par zeddy23 dans le forum Bases de données
    Réponses: 4
    Dernier message: 25/02/2005, 08h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo