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

C++Builder Discussion :

Sauvegarder et Récupérer image


Sujet :

C++Builder

  1. #1
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 44
    Points
    44
    Par défaut Sauvegarder et Récupérer image
    Bonjour à tous, voici mon problème :

    Mon programme a pour but de créer des comptes utilisateurs avec stockage de leur photo.

    J'affiche dans un TImage un image donc issue d'un OpenPictureDialog (fomat bmp & jpeg pour l'instant).

    Je souhaite sauvegarder cette image mais j'hésite entre ces deux solutions :

    1) Je crée un dossier Image dans lequel chaque image sera stockée avec comme nom l'Id (de la BdD) de l'utilisateur.

    2) Je stocke en tant que Blob les photos dans ma BdD Access (ma préférée).

    J'ai fouillé un peu pour trouver des exemples de blob mais rien de fini n'est proposé...

    Voici un bout de code que j'ai trouvé pour stocker mon image en tant que Blob :

    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
    void __fastcall TAnniversaire::Btn_ENVOYER_IMAGEClick(TObject *Sender)
    {
    	Q_Ajouter->Close();
    	Q_Ajouter->SQL->Clear();
    	//////////////// AJOUTER UNE PHOTO ///////////////////////////////////////
    	Q_Ajouter->SQL->Add("INSERT INTO t_personnes (photo)");
    	Q_Ajouter->SQL->Add("Values(:PFichier)");
    	Q_Ajouter->ParamCheck = true;
    	//Q_Ajouter->Parameters->ParamByName("PFichier")->LoadFromFile("C:\\Users\\__sPiKe__\\Desktop\\Projets\\Anniversaire\\Debug\\Images\\bmp.bmp",ftBlob);
    	Q_Ajouter->Parameters->ParamByName("PFichier")->LoadFromFile(OPD_Tof->FileName.c_str(),ftBlob);
    	try
    	 {
    		Q_Ajouter->ExecSQL();
    	 }
    	 catch(const Exception &E)
    	 {
    		 MessageBox(Handle,"Erreur","",MB_OK);
    	}
    }
    * A noter que :
    C:\\Users\\__sPiKe__\\Desktop\\Projets\\Anniversaire\\Debug\\Images\\bmp.bmp
    OPD_Tof->FileName.c_str()
    Je ne sais pas si ça fonctionne vraiment, je pense que oui mais l'idéal serait de trouver l'image affichée dans le TImage.

    * Le code compile, aucune erreur, le programme ne plante pas et dans ma base de données je vois bien un enregistrement de type Donnée binaire qui s'ajoute. Mais impossible pour moi de voir si cette donnée contient bien l'image...

    Je m'en remet donc à vous

    Merci bcp.

  2. #2
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    Par défaut
    Citation Envoyé par __sPiKe__ Voir le message
    B* Le code compile, aucune erreur, le programme ne plante pas et dans ma base de données je vois bien un enregistrement de type Donnée binaire qui s'ajoute. Mais impossible pour moi de voir si cette donnée contient bien l'image...
    Pour tester tu n'as pas qu'a prendre le contenu de ta bd et essayer de créer un fichier avec? Peut-être qu'il te faudra un éditeur hexa, je ne suis pas trop au courant de quoi le blob à l'air.
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  3. #3
    Membre chevronné
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Points : 2 189
    Points
    2 189
    • Plus un ordinateur possède de RAM, plus vite il peut générer un message d'erreur. - Dave Barry
    • Je n'ai pas peur des ordinateurs. J'ai peur qu'ils viennent à nous manquer. - Isaac Asimov
    • Le code source est comme une belle femme, plus on le regarde, plus on trouve des défauts. - Crayon

  4. #4
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 44
    Points
    44
    Par défaut
    Hum j'ai déjà vu ces liens ( c'est là ou j'ai pris mon test pour envoyer une image).

    Je vais quand-même explorer un peu plus ces pages pour voir si je ne trouve pas d'indices !

    Si d'autres personnes ont des idées, je suis preneur.

    Merci.

  5. #5
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2005
    Messages
    401
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 401
    Points : 578
    Points
    578
    Par défaut
    Hello,

    A part reprendre ton code d'insertion, en faire un select et ensuite utiliser SaveToFile...

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 573
    Points : 713
    Points
    713
    Par défaut
    Salut

    Pourquoi pas stocker un tableau de rgb ?
    Il est aisément facile de dessiner ton Timage ensuite

  7. #7
    Membre du Club
    Inscrit en
    Juin 2009
    Messages
    128
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 128
    Points : 44
    Points
    44
    Par défaut
    Bon j'ai décidé d'utiliser les DBImages ça sera plus simple je pense, seulement y a très peu de sujets concernant ce composant.

    J'ai mis un DBImage sur ma Form, avec un Datasource et en DataField = bmp (j'ai vu ça sur un site...)

    J'affiche dans mon DBImage1 l'image sélectionnée dans un OpenPictureDialog.

    Et donc je dois envoyer cette image dans ma BdD MS Access grâce à un bouton "Envoyer" et pouvoir la récupérer et l'afficher dans ce même DBImage1 grâce au bouton "Récupérer".

    Quelqu'un a une idée ?

    Merci.

Discussions similaires

  1. Réponses: 4
    Dernier message: 14/09/2007, 03h50
  2. Réponses: 3
    Dernier message: 23/06/2006, 12h15
  3. sauvegarde d'ne image dans un fichier?
    Par waiso dans le forum OpenGL
    Réponses: 3
    Dernier message: 12/05/2006, 08h33
  4. Sauvegarde d'une image jpeg modifiée
    Par tomfoot dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/04/2006, 16h02
  5. Sauvegarde d'une image sous un autre format
    Par gandf dans le forum C++Builder
    Réponses: 4
    Dernier message: 24/02/2004, 09h50

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