| File_save et la résolution | |
|
|
Auteur | Message |
---|
Cobra
Nombre de messages : 14 Localisation : France Date d'inscription : 05/11/2009
| Sujet: File_save et la résolution Ven 8 Aoû 2014 - 15:21 | |
| Bonjour à tous,
Je profite de quelques jours de congés pour reprendre un peu la programmation.
Quelqu'un a-t-il une astuce pour connaitre et/ou imposer la résolution (en dpi) d'un motif crée dans un picture et sauvegardé par file_save ?
Il semblerait que, d'un PC à l'autre, la résolution change lors de l'utilisation de file_save. Sur mon PC de bureau la résolution serait de 81x81, sur mon netbook de 96x96.
Les dimensions du motif sont modifiées lors de l'impression (impression réalisée par PAINT). | |
|
| |
Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: File_save et la résolution Ven 8 Aoû 2014 - 15:41 | |
| Ceci est entièrement géré par le drivers de ton imprimante (résolution en dpi) Si tu veux paramétrer l'impression directement depuis Panoramic, je crois que la DLL de Klaus le permet, sinon, le plus simple c'est de le paramétrer à l'identique dans le drivers de l'imprimante installé sur le PC | |
|
| |
Cobra
Nombre de messages : 14 Localisation : France Date d'inscription : 05/11/2009
| Sujet: Re: File_save et la résolution Sam 9 Aoû 2014 - 11:23 | |
| Merci pour ta réponse jicehel,
Ce n'est pas l'imprimante qui pose problème.
Je crée un fichier bmp obtenu par file_save depuis un picture.
je copie ce fichier sur un autre PC puis je l'imprime avec PAINT.
Les 2 motifs imprimés n'ont pas la même dimension. Normalement, un fichier bmp est imprimé de façon identique quelque soit le PC ou l'imprimante. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: File_save et la résolution Sam 9 Aoû 2014 - 11:35 | |
| Non, ce n'est pas exact. C'est vrai uniquement s'il s'agit exactement de la même imprimante, la même version du système et du driver, et des mêmes paramètres de configuration. en réalité, la notion de pixels est parfaitement virtuelle. un pixel définit un "point" de l'image, avec ses attributs (couleur, canal alpha si le format le permet). C'est le driver de l'écran ou le driver de l'imprimante qui convertit les pixels en DPI (dot per inch = point par pouce), ce qui établit les dimensions réelles de l'impression de l'image. Elle dépend, entre autres: - de la précision d'impression choisie (300 dpi, 600 dpi, etc) - de la dimension physique de la feuille - des marges - des capacités physiques de l'imprimante - ...
Tu vois, ce n'est pas si simple que ça. Regarde les fonctions de gestion d'imprimante dans KGF.dll (tout est dans la doc KGF.chm) - tu y trouves plein d'informations et des fonctions pour maîtriser cela, au niveau impression Panoramic. Bien sûr, pas pour Paint... | |
|
| |
Cobra
Nombre de messages : 14 Localisation : France Date d'inscription : 05/11/2009
| Sujet: Re: File_save et la résolution Dim 10 Aoû 2014 - 15:32 | |
| En fait, je pense avoir trouver un début d'explication.
En décortiquant la structure des fichiers bmp, j'ai noté que la résolution horizontale est stockée dans les octets 38 à 41 (verticale 42 à 45).
Dans le cas d'un fichier bmp crée avec file_save (sans file_load préalable), ces 8 octets sont à 00 et je pense que l'impression est aléatoire suivant le logiciel utilisé car la résolution n'est pas connue. Pour le motif décrit dans mon premier post, PAINT donne une résolution de 81x81, l'explorateur donne 96x96 et IRFANVIEW donne ...rien, alors que pour une image dont les octets 38 à 45 sont renseignés, les 3 valeurs données sont identiques.
Les valeurs dans mon ébauche de programme étant définies pour que les dimensions du motif imprimé soit correctes avec une résolution de 96x96, j'ai "forcé" les valeurs des 8 octets après création du bmp avec un éditeur hexa. Maintenant, l'impression est correcte avec les 2 PC. | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: File_save et la résolution Dim 10 Aoû 2014 - 16:10 | |
| C'est bien la première fois qu'on tombe sur un problème de validité de structure du fichier BMP généré par FIEL_SAVE ! Jack, peux-tu te pencher sur ce problème ? Ca paraît gros, tout de même ! | |
|
| |
JL35
Nombre de messages : 7112 Localisation : 77 Date d'inscription : 29/11/2007
| Sujet: Re: File_save et la résolution Dim 10 Aoû 2014 - 17:35 | |
| Les valeurs dont parle Cobra sont les résolutions horizontale et verticale de l'image en pixels par mètre. Certes ces données ne sont pas créées par Panoramic au moment de la sauvegarde de l'image en fichier bmp (les champs correspondants restent vides), mais est-ce que Panoramic peut décider de ces valeurs qui me semblent arbitraires ? Qu'est-ce qui fait qu'on décide que l'image a une résolution de 100 dpi, ou 300 dpi, ou autre, alors que chaque pixel de cette image, créée ici de toutes pièces, est bien décrit dans le fichier ? Il me semble que c'est une notion qui n'interviendra qu'au moment de l'affichage ou de l'impression... Attention, je ne suis pas du tout un spécialiste de l'image (on l'aura peut-être deviné ), mais je me pose simplement la question. Pour mémoire, la structure de l'en-tête d'un fichier BMP: - Code:
-
Header fichier BMP (adresses en hexa):
Ads Octets Contenu 00-01 2 'BM' 02-05 4 Taille du fichier 06-09 4 (=0) réservé 0A-0D 4 offset image 0E-11 4 taille du header 12-15 4 largeur image (pixels) 15-19 4 hauteur image (pixels) 1A-1B 2 nombre de plans 1C-1D 2 profondeur de couleurs (=1,4,8,16,24 ou 32) 1E-21 4 type de compression (=0 non compressé) 22-25 4 taille totale de l'image 26-29 4 résolution H (pixels/mètre) 2A-2D 4 résolution V ( " ) 2E-31 4 nombre de couleurs de la palette 32-35 4 nombre de couleurs importantes | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Jeu 14 Aoû 2014 - 20:08 | |
| Je voudrais ajouter mon petit grain de sel : je ne m'intéressais pas aux DPI jusqu'au jour où l'on m'a dit qu'un dessin destiné à une impression de qualité DEVAIT être en 300 DPI. Comme il s'agissait d'une carte avec AutoRealms, je crois bien si j'ai bonne mémoire que j'ai su copier et coller et refaire le dessin, mais si une astuce permet de "passer" en 300 un dessin dans une autre résolution d'origine, c'est super ! | |
|
| |
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: File_save et la résolution Ven 15 Aoû 2014 - 0:04 | |
| Ce n''est pas très simple, mais tu peux utiliser les fonctions de gestion d'impression de KGF.dll pour ça. Tu as entre autres, la fonction PrinterFunction, dont le code 8 permet der retourner des valeurs intéressantes: - Code:
-
8 = retourner une dimension de la feuille opt1% = code de la valeur à retourner 1 PHYSICALOFFSETX décalage horizontal en pixel 2 PHYSICALOFFSETY décalage vertical en pixel 3 PHYSICALWIDTH largeur totale en pixel 4 PHYSICALHEIGHT hauteur totale en pixel 5 LOGPIXELSX résolution horizontale en pixels/pouce 6 LOGPIXELSY résolution verticale en pixels/pouce 7 HORZRES largeur utile en pixels 8 VERTRES hauteur utile en pixels 9 HORZSIZE largeur utile en millimètres 10 VERTSIZE hauteur utile en millimètres
(extrait de la doc) Tu peux donc, au choix, travailler en pixels ou en millimètres. Et le code 9 imprime une image à la position "active": - Code:
-
7 = imprimer une image par nom de fichier (BMP, ICO, JPG,GIF,…) opt1% = adr(nom_fichier$) opt2% = largeur de l'image opt3% = hauteur de l'image
Le code 4 permet de positionner la position active etc. | |
|
| |
Froggy One
Nombre de messages : 598 Date d'inscription : 06/01/2012
| Sujet: Re Ven 15 Aoû 2014 - 9:21 | |
| OK, merci Klaus, je garde ça sous le manteau au cas où... bonne journée !!! | |
|
| |
Contenu sponsorisé
| Sujet: Re: File_save et la résolution | |
| |
|
| |
| File_save et la résolution | |
|