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

OpenGL Discussion :

Impression Opengl


Sujet :

OpenGL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Impression Opengl
    Je cherche une méthode d'impression sous windows permettant une qualité professionnelle avec pour objectif l'impression de plans. J'ai éssayé plusieurs méthodes aucune ne me satisfait, rendu direct dans le DC imprimante donne une piêtre qualité, rendu dans une bitmap consomme énormément de mémoire, rendu de commandes opengl dans une métafile n'apporte rien de particulier par rapport au rendu direct dans un DC imprimante.

    J'aimerais surtout connaitre les techniques employées par ceux d'entre vous qui ont rencontré le même problème et l'ont surmonté.

  2. #2
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    j'ai vraiment jamais essayé mais si tu n'utilise que des formes geometrique simple, tu peut essayer de les enregistrer au format SVG (je croit que c'est comme ca qu'il s'appel), c'est du XML qui est suporté par pas mal d'appli apparament (dont GIMP2)
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  3. #3
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    je sauvegarde mon buffer dans une image TGA et l imprime ensuite

    je trouve que la consommation de memoire n a rien d execessif a moins que t ai une image avec tres peu de RAM , ce qui n etonnerait



    exemple :
    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
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
     
    typedef struct {
    		unsigned char TGAheader[12];
    		unsigned char header[6];
    } TGA_header;
     
     
    //// prend un screenshot en tga //////////////
     
    void ScreenShot(int w,int h ) {
     
    		static int ShotIndex = 0;
    		char Filename[250];
     
    		sprintf(Filename,"shot%d.tga",ShotIndex);
     
    		byte* Buffer;
    		FILE* TGAFile;
    		TGA_header TGA;
    		byte HeightH,HeightL,WidthH,WidthL;
     
    		Buffer = (unsigned char*)calloc(w*h*3,sizeof(unsigned char));
     
    		glReadPixels(0,0,w,h,GL_BGR_EXT,GL_UNSIGNED_BYTE,Buffer); // change si tu veux une zone d ecran qui part pas de 0,0
     
    		TGAFile = fopen(Filename, "wb");
     
    		HeightH = (byte)(h / 256);
    		HeightL = (byte)(h % 256);
    		WidthH  = (byte)(w / 256);
    		WidthL  = (byte)(w % 256);
    		// Write TGA Header
    		TGA.TGAheader[0] = 0;
    		TGA.TGAheader[1] = 0;
    		TGA.TGAheader[2] = 2;
    		TGA.TGAheader[3] = 0;
    		TGA.TGAheader[4] = 0;
    		TGA.TGAheader[5] = 0;
    		TGA.TGAheader[6] = 0;
    		TGA.TGAheader[7] = 0;
    		TGA.TGAheader[8] = 0;
    		TGA.TGAheader[9] = 0;
    		TGA.TGAheader[10] = 0;
    		TGA.TGAheader[11] = 0;
    		TGA.header[0] = (byte) WidthL;
    		TGA.header[1] = (byte) WidthH;
    		TGA.header[2] = (byte) HeightL;
    		TGA.header[3] = (byte) HeightH;
    		TGA.header[4] = (byte) 24;
    		TGA.header[5] = 0;
    		fwrite(&TGA,sizeof(TGA_header),1,TGAFile);
    		fwrite(Buffer,w*h*3*sizeof(unsigned char),1,TGAFile);
    		fclose(TGAFile);
    		++ShotIndex;
    		delete []Buffer;
    }

  4. #4
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    TGA, bitmap, même combat je pense que si il a rejeté l'idée du bitmap c'est qu'il a une bonne raison...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  5. #5
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    Citation Envoyé par bafman
    TGA, bitmap, même combat je pense que si il a rejeté l'idée du bitmap c'est qu'il a une bonne raison...

    c vrai , je le mettais juste la au cas ou ca pourrait etre utile a quelqu un


    cela dit , vu que glReadPixels copie exactement ce que tu vois a l ecran , si tu vois a l ecran un truc joli et que l envoie dans un bitmap y a pas de raison que ton impression soit degeulasse

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    108
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 108
    Points : 128
    Points
    128
    Par défaut
    A mon avis, il faudrait que tu génères un fichier de donnée vectoriel et non pas un fichier de donnée par pixel.

    Genre un fichier Adobe illustrator a la place d'un fichier Adobe Photoshop.

    Je crois (mais j'en suis pas sur) que le format .ps (postcript) ou .pdf permet ce genre de stockage.

  7. #7
    Rédacteur
    Avatar de bafman
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    2 574
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2003
    Messages : 2 574
    Points : 5 323
    Points
    5 323
    Par défaut
    c'est ce que j'ai dit a propos du SVG, c'est un format de dessin vectoriel qui en plus est supporté par pas mal de logiciels...
    * Il est infiniment plus simple de faire rapidement un code qui marche que de faire un code rapide qui marche
    * pour faciliter les recherches, n'oubliez pas de voter pour les réponses pertinentes
    Mes articles

  8. #8
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1
    Points : 1
    Points
    1
    Par défaut reponse à o.carré
    Il est rigoureusement impossible d'obtenir une qualité professionnelle sous windows, pas plus que sous Mac ou linux avec une imprimante personnelle.

    On ne joue pas dans la même cour. Je viens de réaliser une plaquette pour mon Assoce avec les logiciels d'Adobe, illustrator, photoshop et mise en page sous indesign. imprimé sur papier ordinaire c'est à chier mais je le savais, c'est seulement pour avoir une idée que je l'ai fait.

    A la limite, avec une imprimante perso, tu peux tout au plus obtenir un résultat passable en qualité photo avec un papier glacé. Le problème est que le résultat ne sera pas durable et en sus tu auras une marge blanche sauf sur certaines imprimantes plus modernes pour photo et en 10x15 le plus souvent.

    La seule méthode valable est de préparer des fichiers à 300 dpi, CMJN (obligatoire - quadrichromie oblige) avec les fichiers de polices utilisées sous EPS, PDF, ou TIFF non compressés et de remttre cela à un imprimeur. Certains pros disposent de l'outillage pour imprimer directement du PDF, c'est l'avenir, mais ils sont encore rares. D'autres utilisent indesign, mais la grande majorité en est encore à xpress(véritable usine à gaz). comme intermédiaire entre ton document et l'imprimante. Ce ne sont pas les mêmes encres et encore moins la même classe de matériel.

    Razvag

Discussions similaires

  1. Impression d'une frame openGL
    Par babar63 dans le forum Qt
    Réponses: 2
    Dernier message: 27/03/2007, 22h11
  2. Directx ou opengl
    Par scorpiwolf dans le forum DirectX
    Réponses: 13
    Dernier message: 07/02/2003, 08h29
  3. OpenGL et *.3ds
    Par tintin22 dans le forum OpenGL
    Réponses: 4
    Dernier message: 06/05/2002, 13h51
  4. OpenGL ou DirectX
    Par Nadir dans le forum DirectX
    Réponses: 6
    Dernier message: 02/05/2002, 12h48
  5. Opengl -- Les surfaces
    Par Anonymous dans le forum OpenGL
    Réponses: 2
    Dernier message: 02/05/2002, 10h14

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