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

Windows Forms Discussion :

DrawImage mauvaise qualité à l'impression


Sujet :

Windows Forms

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut DrawImage mauvaise qualité à l'impression
    Bonjour

    Mon probleme est le suivant
    Je dois imprimer une image que je crée moi-même,un code barre en l'occurrence.
    Le problème est que l'image a une qualité dégradée et donc non lisible!

    Voici une partie du code concernée
    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
     
     private void printdoc_PrintPage(object sender, PrintPageEventArgs ev, int beginPageToPrint)
    {
      ...
      ev.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bicubic;
      ev.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
      ...
      ev.Graphics.DrawImage(DrawImg());
    }
     
    private Bitmap DrawImg()
    {
      Image img = MyCreateImg();
      Bitmap tmpbmp = new Bitmap(imgbr, img.Width, img.Height);
      return tmpbmp;
    }
    Lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmpbmp.SetResolution(600,600);
    ça ne change rien.
    pourtant quand je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tmpbmp.Save("test.png");
    l'image est de bonne qualité.

    Auriez-vous une idée?
    Cela pourrait-il aussi venir du driver d'impression?

  2. #2
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut Resolution image
    bonjour ultima
    Fixe le Graphics.PageUnit à GraphicsUnit.Display pour avoir une resolution au minimum egale à celle de l'ecran (sinon superieure si tu prends soin d' ajuster la resolution avant d'imprimer sur l'imprimante dans l'apercu ) .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    private void printdoc_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs ev)
            {
                ev.Graphics.PageUnit = GraphicsUnit.Display;
                ev.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.Bicubic;
                ev.Graphics.PixelOffsetMode = System.Drawing.Drawing2D.PixelOffsetMode.HighQuality;
     
                ev.Graphics.DrawImage(  DrawImg(),new Point(0,0) );
     
            }
    bon code....

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci de ta réponse.
    En fait par défaut le PageUnit est déjà à GraphicsUnit.Display.
    je l'ai rajouté tout de même.

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut
    Deux choses :

    1- Essaye de ne pas devoir resizer ton image (cree la a lo bonne dimension au départ)
    2- IMPORTANT : Fill to image avec un fond blanc avant de faire le draw du code bar
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mars 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 5
    Points : 5
    Points
    5
    Par défaut
    Merci.

    en fin de compte, j'ai fait
    MyBitmap.SetResolution(96, 48);
    pour agrandir l'image.

    Bizarrement sans cette modification, à l'écran l'image est nickel mais si j'imprimais l'image via un éditeur quelconque, elle ressortait moins bien sur le papier, comme avec mon code.

    En agrandissant sur l'axe des y l'image via le SetResolution(..,48), l'image ressort mieux.

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

Discussions similaires

  1. SnagIt - Impression de très mauvaise qualité
    Par Yvouille dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 24/09/2014, 10h57
  2. Améliorer la qualité d'impression d'une form
    Par akabane dans le forum Delphi
    Réponses: 2
    Dernier message: 08/07/2006, 14h31
  3. Modification de la qualité d'impression
    Par Eusebius dans le forum Matériel
    Réponses: 1
    Dernier message: 06/06/2006, 18h44
  4. [GD] Mauvaise qualité des textes en jpeg
    Par coolmic dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 26/05/2006, 19h15
  5. [ImageMagick] Texte -> image : très mauvaise qualité ?
    Par Yusuke dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 11/11/2005, 20h17

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