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 :

sauver une image dans un fichier depuis un picturebox


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut sauver une image dans un fichier depuis un picturebox
    Bonjour,

    ça doit être tous simple mais je ne comprends pas !!!!

    Je scanne une image au format bmp 8bpp et je l'a stocke temporairement dans un picturebox. Là pas de soucis.

    Après contrôle de l'opérateur, je veux sauver l'image sur le disque dur.

    // contrôle bon format pixelformat (8bpp)
    string pictureboxpixelFormat = pictureBox.Image.PixelFormat.ToString();

    pictureBox.Image.Save("D:\\minicracks\\DataAcq\\37A1_236163\\ESSAI.Bmp");

    => message d'erreur: "une erreur générique c'est produite dans GDI+"


    mon répertoire existe, il me crée le fichier ESSAI.Bmp de taille 0 !!!

    pour contourner le problème j'ai essayé de copier le contenu de l'image dans un bmp. ça marche mais par défaut il transforme l'image 8bpp en 24bpp

    Bitmap bmp1 = new Bitmap(pictureBox.Image);
    bmp1.Save("D:\\minicracks\\DataAcq\\37A1_236163\\ESSAI.Bmp", fileFormat);

    Merci d'avance pour le coup de main

    Marc

  2. #2
    Expert éminent
    Avatar de smyley
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    6 270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 6 270
    Points : 8 344
    Points
    8 344
    Par défaut
    Pour le fameux message "Une erreur générique s'est produite dans GDI+", je te propose plusieurs "indices" :
    - Tu ne peut pas enregistrer directement une image au même endroit que celle que tu as chargé (si tu charge a.bmp, tu ne peut pas faire Image.Save("a.bmp") )
    - Si tu la charge à partir d'un flux (stream), il doit resté ouvert tant que tu l'utilise dans la pictureBox
    - Tu peut enfin tenter d'enregistrer l'image dans un MemoryStream avant de le copier vers ton fichier ...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut sur la bonne piste :)
    [QUOTE=smyley;3169071]Pour le fameux message "Une erreur générique s'est produite dans GDI+", je te propose plusieurs "indices" :

    - Tu ne peut pas enregistrer directement une image au même endroit que celle que tu as chargé (si tu charge a.bmp, tu ne peut pas faire Image.Save("a.bmp") )
    ça je le sait L'image vient directement d'un tampon mémoire d'un librairie dédiée pour la manipulation d'un scanner.

    Si tu la charges à partir d'un flux (stream), il doit resté ouvert tant que tu l'utilises dans la pictureBox = le problème rencontré Je charge l'image depuis un flux mémoire du scanner généré par un événement (VintasoftTwain.dll) Effectivement je n'ai plus ce flux à disposition au moment ou je veux sauver la picturebox dans un fichier. Mais en copiant l'image du picturebox dans un bitmap, je peux sauver l'image, par contre ça force le format de l'image de 8bpp en 24 bpp lors de l'instantation et ça je ne veux pas !!!

    Tu peux enfin tenter d'enregistrer l'image dans un MemoryStream avant de le copier vers ton fichier ..
    Plus c'est simple mieux c'est. J'envisage aussi de créer un fichier temporaire. A voir

    [QUOTE]

    Merci pour ces quelques pistes....

    bon weekend

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2006
    Messages : 17
    Points : 10
    Points
    10
    Par défaut la solution
    Je confirme, qu'il est impossible de sauvegarder le contenu d'un picturebox dans un fichier si ce picture box a été chargé par une mémoire tampon qui n'est plus disponible (libérée) => message d'erreur: "une erreur générique c'est produite dans GDI+".

    Toutefois il est possible de copier l'image du picturebox dans un bitmap et de sauver ce bitmap.

    Pour ma part j'ai opté pour l'enregistrement de fichiers temporaires pour pouvoir ensuite disposer de l'image pour une sauvegarde définitive.

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/07/2013, 12h48
  2. [C# 2.0] Comment sauver une image dans un fichier Xml ?
    Par Louis-Guillaume Morand dans le forum C#
    Réponses: 4
    Dernier message: 08/09/2006, 17h47
  3. Récupérer la taille d'une image dans un fichier (GIF/JPEG)
    Par SheikYerbouti dans le forum Multimédia
    Réponses: 4
    Dernier message: 12/05/2005, 14h17
  4. [debutant]Sauver une table dans un fichier
    Par christophebmx dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 26/04/2004, 10h34
  5. Sauver une StringGrid dans un fichier
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 10/12/2003, 14h52

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