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

Langage Delphi Discussion :

Impression incorrecte d'une image bitmap


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 35
    Points : 23
    Points
    23
    Par défaut Impression incorrecte d'une image bitmap
    Delphi 6

    Bonjour,

    Une bitmap s'affiche correctement à l'écran (dans le canvas d'une fiche), mais est illisible à l'impression (canvas de l'objet Printer). Je ne comprends pas pourquoi.

    C'est pourtant assez basic comme manip !

    Voici le résultat.Nom : Pb impression Bitmap.JPG
Affichages : 76
Taille : 21,7 Ko

    Ci après, le code qui a permis cet essai

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
      Bitmap := TBitmap.Create;
      Bitmap.LoadFromFile('C:\Program Files\Fichiers communs\Borland Shared\Images\Splash\256Color\factory.bmp');
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      try
        Form1.Canvas.Draw(50,50,BitMap);
          // dessin sur la fiche ==> ok
        with Printer do
        begin
          BeginDoc;
          Canvas.Draw(50,50,BitMap);
            // dessin sur l'imprimante ==> ko
          EndDoc;
        end;
      finally
      end;
    end;
     
    procedure TForm1.FormDestroy(Sender: TObject);
    begin
        Bitmap.Free;
    end;

  2. #2
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    J'ai fait un test avec le code suivant similaire au tien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    var  Bitmap : TBitmap;
    procedure TfrmGenP.Button1Click(Sender: TObject);
    begin     Bitmap := TBitmap.Create;
              BitMap.PixelFormat:=pf24bit;
              Bitmap.LoadFromFile('C:\Program Files\Fichiers communs\Borland Shared\Images\Splash\256Color\factory.bmp');
              frmGenP.Canvas.Draw(170,50,BitMap); //< dessin sur la fiche ==> ok
              with Printer do
              begin BeginDoc;
                    //Canvas.Draw(50,50,BitMap); // dessin sur l'imprimante ==> ok mais taille réduite
                    Canvas.StretchDraw(rect(50, 50, 600, 450),Bitmap); // dessin sur l'imprimante ==> ok taille agrandie
                    EndDoc;
              end;
    end;
    ... pas détecté d'anomalie... par contre vaut mieux utiliser des BitMap de grande taille pour les réduire avec StretchDraw car si on étire un petit BitMap comme celui-ci dans un grand rectangle on perd en qualité visuelle.

    Pour ce qui est du PixelFormat j'aurais pu prendre une valeur plus faible vu qu'il s'agit d'un BitMap de 256 couleurs : TPixelFormat = (pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom); En fait j'ai mis PixelFormat par habitude plus que par nécessité dans le cas présent.

    A+
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 35
    Points : 23
    Points
    23
    Par défaut
    Bonjour,

    ça marche nickel !

    Bon, je vois que j'ai besoin d'en savoir un peu + sur la manipulation des images.

    Merci beaucoup.

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

Discussions similaires

  1. Impression d'une image bitmap sous Delphi
    Par ninaleo dans le forum Langage
    Réponses: 5
    Dernier message: 30/11/2008, 12h41
  2. Réponses: 3
    Dernier message: 11/11/2005, 17h15
  3. Réponses: 6
    Dernier message: 22/12/2004, 11h00
  4. generer une image bitmap a partir d'une scene OGL
    Par FreshLog dans le forum OpenGL
    Réponses: 4
    Dernier message: 01/07/2003, 11h29
  5. Lecture d'une image bitmap
    Par Geronimo dans le forum x86 32-bits / 64-bits
    Réponses: 18
    Dernier message: 28/06/2002, 12h01

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