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 d'une image bitmap sous Delphi


Sujet :

Langage Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Points : 44
    Points
    44
    Par défaut Impression d'une image bitmap sous Delphi
    Bonsoir à tous,

    Voici le code que j'ai tapé pour imprimer une image BitMap sur mon application :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    with Printer do
       begin
               BeginDoc;	
               Canvas.Draw(0,0, Solution.Picture.Graphic);	
               EndDoc;	
       end;
    L'impression se fait mais la taille de mon image est minuscule, à peine visible.

    Pourriez-vous me dire ce que je dois modifier pour que l'image imprimée ait la même taille que celle affichée à l'écran ? Je vous en remercie par avance.

    Vous souhaitant une bonne fin de soirée

    Laurent

  2. #2
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    with printer do if printdialog1.execute then begin                                      bmp.width:=pagewith;                                                  bmp.height:=round(bmp.height*pagewidth/bmp.width); 
    //si tu as dessiné dans le bmp.canvas, tu redessines avec les nouvelles dims
    dessiner;// (par exemple);
    canvas.draw(0,0,bmp);// ( si image: image1.picture.bitmap par ex)
    //on copie bmp dans le canvas du printer
    Enddoc;
    bmp.redim(taillex,tailley);//.....pour rétablir la taille à l'affichage.
    dessiner;//...réafficher aux bonnes dims
    end;
    là au moins tu auras une impression en gardant les proportions sur la largeur de la page

  3. #3
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 812
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 812
    Points : 13 527
    Points
    13 527
    Par défaut
    Tu peux utiliser StretchDraw pour agrandir ton image.

    Mais tu dois contrôler la résolution de ton imprimante pour la calculation du facteur de zoom avec GetDeviceCaps.

    Faire un Draw d'une image qui fait 600px de large sur une imprimante ayant une résolution de 600dpi fera que ton image imprimée aura 1 pouce de large. Sur une imprimante en 1200dpi, 1/2 pouce, etc.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    Bonsoir

    Je vous remercie pour vos réponses mais en fait l'image en question ne rentre pas dans tout l'écran. Je souhaiterais donc pouvoir l'imprimer sur plusieurs page en une seule manipulation. POur l'instant, je n'ai qu'une page et son contenu est étiré verticalement.

    Voyez-vous ce qui ne va pas ?

    En vous remerciant par avance, je vous souhaite une bonne soirée.

    Cordialement

    Laurent

  5. #5
    Membre chevronné
    Avatar de Archimède
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2005
    Messages
    1 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 644
    Points : 1 975
    Points
    1 975
    Par défaut
    pour faire simple, ça, ça devrait marcher :

    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
     
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    monbmp:=Tbitmap.Create;
    monbmp.loadfromfile('chemin.bmp');
    end;
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    with printer do if printdialog1.Execute then
    begin
    begindoc;
    canvas.StretchDraw(rect(0,0,printer.PageWidth,round(1182*printer.PageWidth/1476)),monbmp);
    enddoc;
    end;
    end;
    image de taille 1476 de largeur et 1182 de hauteur.

    Après, tu adaptes en fonction de la dimension de ton image.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 111
    Points : 44
    Points
    44
    Par défaut
    Merci pour tout, ça marche super bien.

    bonne fin de week-end

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

Discussions similaires

  1. Impression incorrecte d'une image bitmap
    Par BéBéHi dans le forum Langage
    Réponses: 2
    Dernier message: 03/12/2007, 14h10
  2. Récupérer une image d'une bdd access sous delphi
    Par RodEpsi dans le forum Bases de données
    Réponses: 1
    Dernier message: 09/11/2006, 17h19
  3. [BPW] Impression d'une image BMP
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 21/08/2003, 14h34
  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