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

VB.NET Discussion :

[VB.Net] Multiplier les Image.FromFile() pour imprimer différentes pages avec image?


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut [VB.Net] Multiplier les Image.FromFile() pour imprimer différentes pages avec image?
    Bonjour,

    Je suis en train de peaufiner une classe dérivée de PrintDocument, dont le but est d'imprimer les fiches d'informations de plantes avec images. Dans la méthode OnPrintPage j'ai pensé lire une table temporaire qui contient les enregistrements sélectionnés pour l'impression, et pour imprimer chaque page une à la fois, je compte utiliser une boucle For.

    Pour charger l'image pour chaque fiche, je lirai le chemin d'accès (relatif ou absolu, c'est à déterminer) dans la ligne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ' Dans la boucle For
    ...
    magePlante = System.Drawing.Image.FromFile(path)
    ...
    ...
    Mais je me suis rendu compte qu'une image chargée à partir d'un fichier ne se décharge qu'en appelant le .Dispose(). Cela veut-il dire que je ne pourrai pas appeler la ligne ci-dessus pour charger l'image suivante? Dois-je procéder autrement (par exemple avec une imagelist ou autre)? Merci de bien vouloir éclairer ma lanterne, en espérant avoir posté au bon endroit.

    [EDIT]
    En fait, je me demande s'il y a des dangers à laisser des fichiers d'images ouverts (et par conséquent verrouillés??) lorsqu'on charge une première image en faisant monImage = image.FromFile("fichier1.jpg") et qu'ensuite on fasse monImage = image.FromFile("fichier2.jpg"). La première image est-elle fermée automatiquement? Y a-t-il récupération de la mémoire? J'espère que c'est mieux comme ça...!??
    [/EDIT]
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  2. #2
    Expert confirmé
    Avatar de bidou
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2002
    Messages
    3 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 055
    Par défaut
    Je ne comprends pas trop le sens de ta question, mais normalement il n'y a pas de problèmes pour charger consécutivement plusieurs image dans un même objet

  3. #3
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Citation Envoyé par bidou
    Je ne comprends pas trop le sens de ta question, mais normalement il n'y a pas de problèmes pour charger consécutivement plusieurs image dans un même objet
    Pardon si je n'ai pas été claire. Tu veux dire qu'il ne devrait normalement pas y avoir de problème à charger un premier fichier d'image pour imprimer la page 1 et ensuite d'affecter à la variable image un nouveau fichier à charger pour la page 2, etc.? J'espère que là c'est plus clair...

    Merci!
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  4. #4
    Membre expérimenté Avatar de toniolol
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2005
    Messages
    281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 281
    Par défaut
    Bonjour,
    je n'ai pas de réponse précise mais il faut peut-être procéder comme avec les PictureBox.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim photoStream As FileStream = FileInfo.OpenRead
    pbxImage.Image = Image.FromStream(photoStream)
    photoStream.Close()

  5. #5
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Citation Envoyé par toniolol
    Bonjour,
    je n'ai pas de réponse précise mais il faut peut-être procéder comme avec les PictureBox.
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Dim photoStream As FileStream = FileInfo.OpenRead
    pbxImage.Image = Image.FromStream(photoStream)
    photoStream.Close()
    pas sûre d'avoir compris, donc il faudrait que je prenne un Stream à la place? Ça semble bon et j'ai trouvé quelques trucs sur le Web, mais la syntaxe pour ce genre de chose m'est (hélas encore) étrangère.

    Ce code VB.NET serait-il bon ou mauvais?
    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Dim mon Image as Image ' l'image qui change pour chaque page à imprimer
    Dim imagePath as String = "c:\image\image.jpg"
    Dim imageStream as new Stream = File.OpenRead(imagePath)
    monImage = Image.FromStream(imageStream)
    ...
    ' le code pour imprimer l'image
    ...
    imageStream.Close() ' avant de passer à la suivante
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

  6. #6
    Membre éprouvé
    Avatar de annedeblois
    Femme Profil pro
    Analyste d'exploitation
    Inscrit en
    Août 2005
    Messages
    1 485
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 50
    Localisation : Canada

    Informations professionnelles :
    Activité : Analyste d'exploitation
    Secteur : Service public

    Informations forums :
    Inscription : Août 2005
    Messages : 1 485
    Par défaut
    Pardon pour le UP...

    J'ai essayé avec le code suivant:

    Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
            Dim imageBidon As Image
            Dim imageBidonStream As System.IO.Stream
            imageBidonStream = System.IO.File.OpenRead("print.gif")
            imageBidon = Image.FromStream(imageBidonStream)
            e.Graphics.DrawImage(imageBidon, Me.margeGauche, Me.margeHaute)
            imageBidonStream.Close()
    Apparemment, ça fonctionne bien pour une seule page. Y a-t-il des contre-indications ou des trucs que j'aurais oubliés?

    Merci à l'avance, car la piste me semble très bonne.
    Anne, citoyenne canadienne
    Informaticienne, altiste et radioamateur... bref, originale
    Lire les règles...
    Un petit rappel: Je ne réponds à aucune question technique posée par MP

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/04/2008, 16h49
  2. imprimer une facture avec image et texte
    Par mouss4rs dans le forum AWT/Swing
    Réponses: 4
    Dernier message: 23/04/2008, 08h25
  3. Bouton avec image - Problème pour la taille
    Par Sangdrax1604 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 18/10/2006, 14h32

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