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++ Discussion :

Image jpeg : buffer -> file


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut Image jpeg : buffer -> file
    Bonjour,

    Voici mon problème :

    Je récupère dans un buffer une image jpeg à partir d'une caméra IP.
    Je connais donc la taille du buffer.

    Ensuite je copie l'image sur le disque avec fwrite.

    Sur linux, je peux visualiser l'image copiée ; cepedant sur windows ce n'est pas le cas. Lorsque je l'ouvre avec gimp par exemple j'ai le mesage suivant :
    "Corrupt JPEG data: premature end of data segment"

    Je me demande si le problème vient des différences entre linux et windows concernant les fins de ligne.

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,

    A propos des fin de ligne, il y a effectivement des diffférence entre linux et windows. LEs fichiers sont ils ouvert en mode texte ou binaire ?

    De plus, les images générées sur linux sont elles visualisables sur windows (et inversement) ?

  3. #3
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Citation Envoyé par mabu Voir le message
    A propos des fin de ligne, il y a effectivement des diffférence entre linux et windows.
    Oui mais cela ne concerne que les fichiers textes. Je ne pense pas qu'un fichier jpg entre dans cette actégorie

    Une autre possibilité est que le fichier jpg soit légèrement invalide/corrompu/non conforme, et que gimp sous linux sait le gérer alors que sous windows, il n'y arrive pas.

    Tu as essayé avec d'autre visualiseur d'e fichiers ?
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Bonjour,

    Quel est le format image du fichier ?
    Tout dépends des besoins, mais l'utilisation d'une librairie image fournissant des fonctions d'export vers les formats courants (Bitmap, jpeg, tiff, ...) ne vous faciliterait pas la vie ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut
    Tout d'abord je vous remercie pour votre aide.

    Les fichiers sont ouverts en mode binaire : fopen(file.c_str(), "wb")

    Les images créées sur linux sont également visualisables sur windows.

    Les images sont au format jpeg.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Octobre 2006
    Messages : 83
    Par défaut
    Autre remarque :
    Les images crées sur windows ne sont pas visualisables sur linux.
    Donc je ne pense pas que gimp corrige le fichier.

    Le problème viendrait donc lors de l'écriture du fichier jpeg sur windows.


    J'ai trouvé une lib (FreeImage) qui permet d'enregistrer dans un fichier en bmp, à partir de mon buffer jpeg.
    Evidemment ça marche sur linux, mais pas sur windows.
    Mais dans ce cas, peut-être que le problème vient du fait que la dll est compilée avec MVSC alors que moi j'utilise le compilateur mingw. ( j'ai du pour cela modifier légèrement le fichier .h de la lib)

  7. #7
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par sagopa Voir le message
    Autre remarque :
    Evidemment ça marche sur linux, mais pas sur windows.
    Mais dans ce cas, peut-être que le problème vient du fait que la dll est compilée avec MVSC alors que moi j'utilise le compilateur mingw. ( j'ai du pour cela modifier légèrement le fichier .h de la lib)
    Euh, effectivement, ce n'est pas franchement recommandé de croiser les compilateurs. En quoi avez vous modifié le fichier .h ?

  8. #8
    Membre expérimenté
    Inscrit en
    Octobre 2007
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Octobre 2007
    Messages : 285
    Par défaut
    Citation Envoyé par sagopa Voir le message
    Les fichiers sont ouverts en mode binaire : fopen(file.c_str(), "wb")
    Il ne devrait pas avoir de problème dans ce cas entre windows et linux si mes souvenirs sont bon.

    Citation Envoyé par sagopa Voir le message
    Sur linux, je peux visualiser l'image copiée ; cepedant sur windows ce n'est pas le cas. Lorsque je l'ouvre avec gimp par exemple j'ai le mesage suivant :
    "Corrupt JPEG data: premature end of data segment"
    ... et ...
    Citation Envoyé par sagopa Voir le message
    Les images créées sur linux sont également visualisables sur windows.


    Citation Envoyé par sagopa Voir le message
    Les images sont au format jpeg.
    Est-ce que la fonction qui transforme le buffer en jpeg et OK ? Peut être que le standard n'est pas tout à fait respecté ? La caméra IP fournit peut être une image type "jpeg" (algo DCT, ....) mais il manque peut être des infos pour que linux puisse lire les données.
    Comment est transférer l'image de la caméra à votre logiciel ?

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

Discussions similaires

  1. [SGBD] affichage d'image jpeg depuis une base mysql
    Par eric_300 dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/09/2005, 12h27
  2. [DBase][BDE]Insérer des images JPeg dans un table.u
    Par migauvin dans le forum Bases de données
    Réponses: 3
    Dernier message: 24/08/2004, 12h03
  3. Compression d'une série d'images jpeg
    Par Tchello dans le forum Langage
    Réponses: 3
    Dernier message: 31/08/2003, 19h59
  4. Copier une image (jpeg) dans le presse papier
    Par benj63 dans le forum C++Builder
    Réponses: 2
    Dernier message: 29/07/2002, 14h51
  5. comment réduire une image jpeg (taille x*y)
    Par don-diego dans le forum C
    Réponses: 4
    Dernier message: 14/07/2002, 20h06

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