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++Builder Discussion :

Impression d'une image


Sujet :

C++Builder

  1. #1
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut Impression d'une image
    Voila, suite a un traitement, j'ai une image que je suis succeptible d'imprimer, mais j'aimerais savoir comment on fait pour l'imprimer, quelque soit la taille, sur une seule page!

  2. #2
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Tu peut utiliser la classe TPrinter, il suffit de mettre dans le canvas de ton TPrinter une image grace a la fonction DrawFocusRect, en lui sp�cifiant le rectangle dans lequel tu veut qu'elle s'affiche (Objet TRect qui sp�cifie les taille de la largeur et de la hauteur)

  3. #3
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    en regardant la classe TPrinter, j'ai vu canvas comme tu me l'avais dit

    si je met le code la, ca marcherai? Image1 est une image avec proportional true
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    void __fastcall TForm1::Button1Click(TObject *Sender)
     
        {
            TPrinter Prntr = Printer();
            Image1->Width = Prntr->PageWidth;
            Image1->Height = Prntr->PageHeight;
            Prntr->BeginDoc();
            Prntr->Canvas = Image1->Canvas);
            Prntr->EndDoc();
    }

  4. #4
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Tu peut essayer, a mon avis ca imprimerait bien l'image mais cela ne serai pas proportionnel a ta feuille, pour cela il faut vraiment utiliser la fonction que je t'ai donn�.

  5. #5
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    je travaillerai ca demiain, je mettrait mon resultat quand j'aurai troouv�^^

  6. #6
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Excuse moi, la fonction est StretchDraw

    Le code n'est pas tr�s compliqu� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            TPrinter Prntr = Printer();
            TRect Rect ;
            //Definir le coordonnée du Rect.
            Image1->Width = Prntr->PageWidth;
            Image1->Height = Prntr->PageHeight;
            Prntr->BeginDoc();
            Prntr->Canvas->StretchDraw(Image1->Picture,Rect);
            Prntr->EndDoc();
    }

  7. #7
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    Citation Envoy� par pottiez
    Excuse moi, la fonction est StretchDraw

    Le code n'est pas tr�s compliqu� :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
            TPrinter Prntr = Printer();
            TRect Rect ;
            //Definir le coordonnée du Rect.
            Image1->Width = Prntr->PageWidth;
            Image1->Height = Prntr->PageHeight;
            Prntr->BeginDoc();
            Prntr->Canvas->StretchDraw(Image1->Picture,Rect);
            Prntr->EndDoc();
    }
    J'i essay� ton code, mais il ne fonctionne pas, tout d'abord, il faut metre
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    TPrinter *Prntr = Printer();
    ensuite pour la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Prntr->Canvas->StretchDraw(Image1->Picture,Rect);
    j'ai plein d'erreur, alors que faut-il mettre a la place pour avoir une bonne compilation?

  8. #8
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Effectivement, il manqu� une * d�sol�.

    Citation Envoy� par Galkir
    j'ai plein d'erreur, alors que faut-il mettre a la place pour avoir une bonne compilation?
    Quel sont les messages d'erreur ?

  9. #9
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    Les erreurs sont
    Citation Envoy� par Erreurs
    [C++ Erreur] fich_etude.cpp(116): E2064 Impossible d'initialiser 'const TRect &' avec 'TPicture * const'
    [C++ Erreur] fich_etude.cpp(116): E2342 Mauvaise correspondance de type dans le param�tre 'Rect' ('const TRect &' d�sir�, 'TPicture *' obtenu)
    [C++ Erreur] fich_etude.cpp(116): E2034 Impossible de convertir 'TRect' en 'TGraphic *'
    [C++ Erreur] fich_etude.cpp(116): E2342 Mauvaise correspondance de type dans le param�tre 'Graphic' ('TGraphic *' d�sir�, 'TRect' obtenu)
    Touste les erreurs sont a la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Prntr->Canvas->StretchDraw(Image1->Picture,Rect);

  10. #10
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Euh normal, j'ai invers� le Rect et le Image1->Picture, il faut remplacer cette ligne par
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    Prntr->Canvas->StretchDraw(Rect,Image1->Picture);
    D�sol� encore une fois

  11. #11
    CGi
    CGi est d�connect�
    Expert confirm�
    Avatar de CGi
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 061
    D�tails du profil
    Informations personnelles :
    Localisation : France, Allier (Auvergne)

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 061
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Prntr->StretchDraw(Rect, Image1->Picture->Bitmap);
    Site : http://chgi.developpez.com

    Pourquoi faire simple quand on peut faire compliqu� ? (Jacques Rouxel)

  12. #12
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    merci, la compilation fonctionne, mais a l'execution, aucune image n'apparait.

    j'utilise cute pd writer (pour ne pas gacher de feuilles) et il me cr� une page blanche de 600ko

    j'ai quand m�me essayer de trouver ue autre solution, mais celle ci s'av�re etre longue, et la taille de l'image n'est pas tres grande (environ 6*4 cm pour une image en 1392*1040 pixels.taille = 5.93Mo)

    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
     
            TPrinter *Prntr = Printer();
            TRect rec = Rect(100, 100, Prntr->PageWidth - 100, Prntr->PageHeight - 100);
            if (Image1->Width > Prntr->PageWidth)
            {
                    Image1->Width = Prntr->PageWidth - 200;
                    Image1->Height = (Prntr->PageWidth - 200) * (HeightImage1 / WidthImage1);
            }
            if (Image1->Height > Prntr->PageHeight)
            {
                    Image1->Width = (Prntr->PageHeight - 200) * (WidthImage1 / HeightImage1);
                    Image1->Height = Prntr->PageHeight - 200;
            }
            Prntr->BeginDoc();
            for (int y = 0; y < Image1->Height; y++)
            {
                    for (int x = 0; x < Image1->Width; x++)
                    {
                            Prntr->Canvas->Pixels[x+200][y+200] = Image1->Canvas->Pixels[x][y];//StretchDraw(rec,Image1->Picture->Bitmap);
                    }
            }
            Prntr->EndDoc();

  13. #13
    Expert confirm�

    Avatar de pottiez
    Homme Profil pro
    D�veloppeur C++
    Inscrit en
    Novembre 2005
    Messages
    7 152
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activit� : D�veloppeur C++
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2005
    Messages : 7 152
    Par d�faut
    Je comprand pas trop pourquoi ca fonctionne pas, je verifirai sur mon programme ce soir, je ne l'ai pas avec moi au boulot.

  14. #14
    Membre confirm�
    Profil pro
    �tudiant
    Inscrit en
    Juin 2006
    Messages
    122
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Juin 2006
    Messages : 122
    Par d�faut
    J'ai mal pr�ciser les choses :

    pour la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Prntr->Canvas->StretchDraw(Rect,Image1->Picture);
    j'ai les erreurs
    [C++ Avertissement] fich_etude.cpp(82): W8018 Affectation de int en TColor
    [C++ Erreur] fich_etude.cpp(116): E2034 Impossible de convertir 'TPicture * const' en 'TGraphic *'
    [C++ Erreur] fich_etude.cpp(116): E2342 Mauvaise correspondance de type dans le param�tre 'Graphic' ('TGraphic *' d�sir�, 'TPicture *' obtenu)
    et pour la ligne
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Prntr->Canvas->StretchDraw(Rect, Image1->Picture->Bitmap);
    la compilation se fait, mais je n'ai aucun r�sultats sur ma page pdf!

Discussions similaires

  1. R�ponses: 5
    Dernier message: 21/01/2007, 19h31
  2. Impression d'une image pleine page
    Par Cyrilh7 dans le forum Balisage (X)HTML et validation W3C
    R�ponses: 2
    Dernier message: 07/11/2005, 09h18
  3. Enlever le boutton impression sur une image !
    Par Gab-Gab dans le forum G�n�ral JavaScript
    R�ponses: 3
    Dernier message: 13/11/2004, 23h30
  4. [BPW] Impression d'une image BMP
    Par Alcat�z dans le forum Turbo Pascal
    R�ponses: 13
    Dernier message: 21/08/2003, 14h34

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