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

WinDev Discussion :

Réception et sauvegarde image Socket [WDM17] [WD17]


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Réception et sauvegarde image Socket [WDM17]
    Bonjour à tous ceux qui me liront,

    Avant de poster, j'ai bien entendu écumé Google ainsi que l'aide.
    Malheureusement je ne trouve pas de solution à mon problème qui doit être tout bête.

    Alors voilà, j'ai une application client (WDM17) qui prend des photos et à chaque prise de photo les envoies sur le serveur (WD17).
    Voilà ce que j'ai coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //on met l'image dans un buffer
    BuffFile=fChargeTexte(chImage)
    BuffFile=Crypte(BuffFile,"",crypteAucun)
    //envoie de l'image par socket
    EnvoiMessage(cstPHOTO,BuffFile,0)
    Le client reçoit la socket sous cette forme
    Nom : SocketImage.PNG
Affichages : 343
Taille : 1,3 Ko
    Ensuite le serveur éxecute ce code ci :
    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
    SI ExtraitChaîne(SansEspace(sMessage),7) <> "FIN" ALORS
    bufBufferPhoto = ExtraitChaîne(SansEspace(sMessage),7)
    bufBufferPhoto = Décrypte(bufBufferPhoto,"",crypteAucun)
    //On récupére le chemin où enregistrer la photo
    ResFichierTempUnique = fOuvre(fRepExe()+"\CheminPhoto.txt")
    SI ResFichierTempUnique = -1 ALORS
    Erreur(ErreurInfo())
    SINON
    //On lit les infos de la photo
    sCheminPhotoTSP = fLitLigne(ResFichierTempUnique)
    FIN
    bResulat = fSauveBuffer(sCheminPhotoTSP,bufBufferPhoto)
    SI bResulat = Faux ALORS
    InfoJournalEvenements("Echec sauveBuffer"+ bResulat)
    SINON
    InfoJournalEvenements("Buff "+bufBufferPhoto)
    FIN
    Après quoi j'ai bien la photo dans le répertoire où elle devrait être (plus grosse que celle d'origine, 170Ko sur le client et 279Ko sur le serveur)
    Mais c'est là ou je me heurte à mon problème, l'image ne peux pas être ouverte.
    Nom : ImageServeur.PNG
Affichages : 348
Taille : 2,6 Ko

    Même résultat avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MonBuffer = dSauveImageJPEG(MonImage,enMemoire
    ) coté client et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    BooleanResultat = fSauveText(CheminOùEnregistrerMonImage,MonBufferViaSocket)
    coté serveur.

    Auriez-vous une idée de solution ?

    Merci de m'avoir lu et pour vos éventuelles réponse.

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur et responsable micros/réseaux
    Inscrit en
    Octobre 2010
    Messages
    1 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur et responsable micros/réseaux
    Secteur : Bâtiment

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 286
    Points : 2 562
    Points
    2 562
    Par défaut
    Bonjour,

    je pense que tu n'utilises pas les bonnes fonctions. Regarde si les fonctions dImageVersTabeau , et dTransfertVersImage ne pourraient pas correspondre à tes besoins. Tu devrais alors pouvoir transférer le contenu du tableau entier vers le serveur qui fera le travail inverse à partir du pointeur vers ce tableau.

    Je n'utilise pas ces fonctions donc je ne sais pas si elles iront jusqu'au bout de tes besoins mais ce sont celles qui me paraissent les plus adaptées.

    bon courage,

    Nicolas

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Merci,
    Bonjour Nicolas et merci pour cette réponse,

    Je vais regarder de suite ces 2 fonctions et vous tiendrais informé.

    Cordialement,
    NicoSab

  4. #4
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut incompétent
    Re-bonjour à tous,

    Suite au commentaire de Nicolas voilà ce que j'effectue (je ne suis pas très compétent) :
    Client WDM17
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    BuffFile est un Buffer
    tabLuminance est un tableau de * par * entiers
    bufTableau est un Buffer
    //Affichage de l'image dans le champ image
    cimgVisualisation = chImage
    //On met l'image en mémoire dans un buffer
    BuffFile = dSauveImageJPEG(cimgVisualisation,enMémoire)
    //On met l'image dans un tableau
    dImageVersTableau(BuffFile, tabLuminance, dComposanteRouge + dNiveauDeGris + dComposanteBleu +dComposanteVert)
    //On sérialise le tableau dans un buffer binaire pour l'envoi par socket
    Sérialise(tabLuminance,bufTableau,psdBinaire)
    //on envoi la socket
    EnvoiMessage(cstPHOTO,bufTableau,0)
    Coté Serveur WD17
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    imgPhoto est une Image
    tabLuminance est un tableau de * par * entiers
    //on recupere le buffer de la socket
    bufBufferPhoto = ExtraitChaîne(SansEspace(sMessage),7)
    //on désérialise le buffer dans un tableau
    Désérialise(tabLuminance,bufBufferPhoto,psdBinaire)
    //on créé l'image à partir du tableau de couleur
    imgPhoto = dTransfertVersImage(&tabLuminance,imgBVR,1600,1200)
    //on enregistre l'image
    bResulat = dSauveImageJPEG(imgPhoto,sCheminPhotoTSP)
    Malheureusement aucune image ne se créé...auriez vous une idée ?

    Merci de m'avoir lu et pour vos éventuelles réponses.

    Cordialement,
    NicoSab

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Maine et Loire (Pays de la Loire)

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

    Informations forums :
    Inscription : Juin 2014
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Solution
    Merci à tous pour votre aide, je vous partage la solution que j'ai trouvé si certain en aurait besoin.
    Coté Client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    chImage est une chaîne //Chemin et nom de la photo prise
    chCrypteImage est une chaîne UNICODE
    //Affichage de l'image dans le champ image
    cimgVisualisation = chImage
    //on passe au deuxieme plan pour visualiser la photo
    FEN_Photo..Plan = 2
    //On charge la photo dans un buffer
    BuffFile = fChargeBuffer(chImage)
    //Chiffrement du buffer enBase64 pour gerer les caractères non imprimable
    chCrypteImage=Crypte(BuffFile,"",compresseAucun,encodeBASE64)
    //Envoie de la socket contenant l'image, le numero dossier et le nom
    EnvoiMessage(cstPHOTO,chCrypteImage+TAB+NumDossier+TAB+chImage,0)
    Et pour le serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    //Reception de la Photo
    sCheminPhotoPoste = ComplèteRep("D:\WINSUR\PHOTO\"+ExtraitChaîne(SansEspace(sMessage),8))
    sCheminPhoto = ExtraitChaîne(SansEspace(sMessage),9)
    NomPhoto = ExtraitChaîne(sCheminPhotoTSP,rangDernier,"\")
    //Chemin complet où sera enregistrée la photo
    sCheminPhotoTSP =  sCheminPhotoPoste+["\"]+NomPhoto
     
    //sauvegarde de l'image présente dans la socket avec son chemin et nom de destination
    fSauveBuffer(sCheminPhoto,Décrypte(ExtraitChaîne(SansEspace(sMessage),7),"",encodeAucun,encodeBASE64))
    ExtraitChaîne(SansEspace(sMessage),7) est la partie de la socket contenant le buffer de l'image chiffrée
    ExtraitChaîne(SansEspace(sMessage),8) est la partie de la socket contenant le numero du dossier où enregistrer la photo
    ExtraitChaîne(SansEspace(sMessage),9) est la partie de la socket contenant le nom de la photo à enregistrer

    Merci à tous et n'hésitez pas si vous avez des remarques.

    Cordialement,
    NicoSab

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

Discussions similaires

  1. [BufferedImage] Redimensionner / Sauvegarder image sur disque
    Par nicolas.pied dans le forum Multimédia
    Réponses: 1
    Dernier message: 17/04/2007, 02h54
  2. sauvegarde image dans un dossier
    Par charaf dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/03/2007, 11h17
  3. [Image]sauvegarde image redimensionnée
    Par taka10 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/04/2006, 10h58
  4. StretchDIBits et sauvegarde image affichée en BPM
    Par chris_wafer_2001 dans le forum BPM
    Réponses: 5
    Dernier message: 25/12/2005, 11h09
  5. image / socket
    Par casafa dans le forum Web & réseau
    Réponses: 4
    Dernier message: 10/08/2004, 14h47

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