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

Delphi Discussion :

Probleme generation d un Jpeg issus d un champ blob "Erreur Jpeg#53"


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut Probleme generation d un Jpeg issus d un champ blob "Erreur Jpeg#53"
    [FONT=monospace]
    Bonjour,

    J'ai un champ blob dans une table dans une bd Firebird contenant une image au format JEPG.
    Je souhaiterais afficher cette image sur une Form.

    Voici le code que j'utilise :

    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
     
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
      PhotoJPEG: TJPEGImage;
      PhotoStream: TMemoryStream;
    begin
     
      IBOPhoto.Open;
      IBOPhoto.First;
     
      PhotoStream := TMemoryStream.Create;
      IBOPhotoPHOTO.SaveToStream(PhotoStream);
     
     
      try
        PhotoJPEG := TJPEGImage.Create;
        try
          PhotoJPEG.LoadFromStream(PhotoStream);
          Image2.Picture.Assign(PhotoJPEG);
        finally
          FreeAndNil(PhotoJPEG);
        end;
      finally
        FreeANdNil(PhotoStream);
      end;
      IBOPhoto.Close;
     
    end;
    Apres l exécution du code une exception de type EJPEG se produit avec le message d'erreur "Erreur JPEG #42" . De quoi cela viens t il selon vous?

    Merci d avance.[/Font]

  2. #2
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    il faut faire [FONT=monospace]
    [/FONT]avant le loadFromStream

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Merci, cette exception ne se produit plus.
    Par contre j ai maintenant ""Erreur JPEG #53"

    Où puis je trouver la signification de ces codes d'erreur pas très parlant?

  4. #4
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    essai cela :
    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
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
       PhotoJPEG: TJPEGImage;
       PhotoStream: TStream;
    begin  
      IBOPhoto.Open;  
      IBOPhoto.First;  PhotoStream:=IBOPhoto.CreateBlobStream(IBOPhotoPHOTO, bmRead);
    if assigned(PhotoStream) then
    begin
      PhotoStream.Position := 0;
      PhotoJPEG := TJPEGImage.Create;    
      try      
        PhotoJPEG.LoadFromStream(PhotoStream);
        Image2.Picture.Assign(PhotoJPEG);
      finally      
      FreeANdNil(PhotoStream); 
    end;  
    finally  
    end;  
    IBOPhoto.Close;
    end;
    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Ca ne compile pas :s

    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
     
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
       PhotoJPEG: TJPEGImage;
       PhotoStream: TStream;
    begin  
      IBOPhoto.Open;  
      IBOPhoto.First;  PhotoStream:=IBOPhoto.CreateBlobStream(IBOPhotoPHOTO, bmRead);
    if assigned(PhotoStream) then
    begin
      PhotoStream.Position := 0;
      PhotoJPEG := TJPEGImage.Create;    
      try      
        PhotoJPEG.LoadFromStream(PhotoStream);
        Image2.Picture.Assign(PhotoJPEG);
      finally      
      FreeANdNil(PhotoStream); 
    end;  
    finally   >>>>End attendu mais finally trouvé
    end;  
    IBOPhoto.Close;   >>>> Déclaration attendue mais IBOPhoto trouvé
    end;   >>>>> . attendu mais ; trouvé

    En remaniant un peu le code je suis arrivé a cela :

    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
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
      PhotoJPEG: TJPEGImage;
      PhotoStream: TStream;
    begin
      IBOPhoto.Open;
      IBOPhoto.First;
      PhotoStream:=IBOPhoto.CreateBlobStream(IBOPhotoPHOTO, bmRead);
      if assigned(PhotoStream)then
      begin
        PhotoStream.Position := 0;
        PhotoJPEG := TJPEGImage.Create;
        try
          PhotoJPEG.LoadFromStream(PhotoStream);
          Image2.Picture.Assign(PhotoJPEG);
        finally
        FreeANdNil(PhotoStream);
      end;
      IBOPhoto.Close;
    end;
    end;
    Ca se compile mais ca produit encore cette erreur #53

  6. #6
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 421
    Points : 5 820
    Points
    5 820
    Par défaut
    salut

    regarde ici les codes erreur
    google

    a priori tu as un probleme de memmoire

    @+ Phil
    Nous souhaitons la vérité et nous trouvons qu'incertitude. [...]
    Nous sommes incapables de ne pas souhaiter la vérité et le bonheur, et sommes incapables ni de certitude ni de bonheur.
    Blaise Pascal
    PS : n'oubliez pas le tag

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2004
    Messages : 15
    Points : 10
    Points
    10
    Par défaut
    Apparemment les composant IBOObjects gèrent mal la récupération des champs Blob.

    J'ai donc utilise les composant Interbase ( TIBTable, TIBConnection et TIBTransaction ).

    voici le code me permettant l affichage d'une image issue de la BD.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure TForm1.Button4Click(Sender: TObject);
    var
      CheminImage: String;
    begin
      IBTable1.Open;
      IBTable1.First;
      CheminImage:= 'c:\test.JPEG';
      IBTable1PHOTO.SaveToFile(CheminImage);
      Image1.Picture.LoadFromFile(CheminImage);
    end;
    Merci pour le coup de main

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme Generation PDF.
    Par george33 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/09/2010, 17h40
  2. Probleme generation de spam
    Par Pulc0 dans le forum Sécurité
    Réponses: 2
    Dernier message: 16/02/2009, 12h47
  3. Eclipse et jboss probleme generation du war
    Par ensisoft dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 03/04/2008, 13h35
  4. probleme generation du wsdl avec xfire
    Par nawal_ensias dans le forum Services Web
    Réponses: 2
    Dernier message: 15/12/2006, 18h37
  5. [Devc++] probleme generation du .exe
    Par ankou82 dans le forum SDL
    Réponses: 4
    Dernier message: 02/05/2006, 13h16

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