Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Calcul résolution ecran/imprimante Lun 20 Aoû 2012 - 10:25 | |
| Bonjour à tous ! Pour des besoins d'impression (logo sur des T-shirts) je me suis amusé à faire un petit programme pour calculer les dimensions en pixel que doit avoir une image. J'ai rajouter des calculs pour la résolution de l'écran en px/inch pour le fun. Ca ne sert pas à grand chose, mais ce qui est interessant c'est que cela permet de constater que sur un écran, la densité en pixel varie énormement en fonction des dimensions et de la résolution. Ce qui peut poser parfois des soucis lorsque l'on incorpore des images dans des sites wouaib... Je vous renvoi à un article qui parle bien de la chose... - Code:
-
CAPTION 0,"Calcul de résolution/densité pixel" WIDTH 0,540 : HEIGHT 0,200 FONT_NAME 0,"Courier new":FONT_SIZE 0,8 LABEL ProcEdit,ProcTimer,Calcul
DIM i,j DIM imp_Hauteur,imp_Largeur,imp_x,imp_y,imp_dpi DIM ecr_dpiX,ecr_dpiY,ecr_Hauteur,ecr_Largeur,ecr_x,ecr_y
imp_dpi=300 : imp_Hauteur=29.7 : imp_Largeur=21 ecr_Hauteur=29 : ecr_Largeur=46 : ecr_x = 1680 : ecr_y=1050
CONTAINER 10: TOP 10,10:LEFT 10,10 : WIDTH 10,250 : HEIGHT 10,150 CAPTION 10,"Imprimante" ALPHA 11: TOP 11,24:LEFT 11,10 :CAPTION 11,"DPI :" EDIT 12: TOP 12,20:LEFT 12,LEFT(11)+WIDTH(11)+60: WIDTH 12,50:TEXT 12,STR$(imp_dpi) ALPHA 13: TOP 13,44:LEFT 13,LEFT(11):CAPTION 13,"Largeur cm:" EDIT 14: TOP 14,40:LEFT 14,LEFT(12):WIDTH 14,WIDTH(12):TEXT 14,STR$(imp_largeur) ALPHA 15: TOP 15,64:LEFT 15,LEFT(11):CAPTION 15,"Hauteur cm:" EDIT 16: TOP 16,60:LEFT 16,LEFT(12):WIDTH 16,WIDTH(12):TEXT 16,STR$(imp_Hauteur) ALPHA 17: TOP 17,114:LEFT 17,LEFT(11) FOR i = 11 TO 17 : PARENT i, 10 : NEXT i
CONTAINER 20: TOP 20,TOP(10) LEFT 20,LEFT(10)+WIDTH(10)+10 WIDTH 20,WIDTH(10):CAPTION 20,"Ecran (pour info)" : HEIGHT 20,150
ALPHA 21: TOP 21,24 :LEFT 21,10 : CAPTION 21,"Largeur cm:" EDIT 22: TOP 22,20 :LEFT 22,LEFT(12): WIDTH 22,50:TEXT 22,STR$(ecr_Largeur) ALPHA 23: TOP 23,44 :LEFT 23,10 : CAPTION 23,"Hauteur cm:" EDIT 24: TOP 24,40 :LEFT 24,LEFT(22): WIDTH 24,50:TEXT 24,STR$(ecr_Hauteur) ALPHA 25: TOP 25,64 :LEFT 25,10 : CAPTION 25,"Resol.X px:" EDIT 26: TOP 26,60 :LEFT 26,LEFT(22): WIDTH 26,50:TEXT 26,STR$(ecr_x) ALPHA 27: TOP 27,84 :LEFT 27,10 : CAPTION 27,"Resol.Y px:" EDIT 28: TOP 28,80 :LEFT 28,LEFT(22): WIDTH 28,50:TEXT 28,STR$(ecr_y) ALPHA 29: TOP 29,114:LEFT 29,10 ALPHA 30: TOP 30,130:LEFT 30,10
FOR i=21 TO 30:PARENT i,20:NEXT i
FOR i=12 TO 16 STEP 2: ON_CHANGE i,ProcEdit: NEXT i FOR i=22 TO 28 STEP 2: ON_CHANGE i,ProcEdit: NEXT i
GOSUB Calcul
TIMER 1000:TIMER_INTERVAL 1000,1000:ON_TIMER 1000,ProcTimer TIMER_OFF 1000
END
ProcEdit: ' on rearme le timer TIMER_OFF 1000 : TIMER_ON 1000 RETURN
ProcTimer: GOSUB Calcul TIMER_OFF 1000 RETURN
Calcul: ' Controle de la validité des valeurs saisies FOR i = 12 TO 16 STEP 2 IF NUMERIC(TEXT$(i)) = 0 THEN RETURN IF VAL(TEXT$(i)) = 0 THEN RETURN NEXT i FOR i = 22 TO 28 STEP 2 IF NUMERIC(TEXT$(i)) = 0 THEN RETURN IF VAL(TEXT$(i)) = 0 THEN RETURN NEXT i ' Calcul imprimante imp_dpi = VAL(TEXT$(12)) imp_largeur = VAL(TEXT$(14)) imp_hauteur = VAL(TEXT$(16)) imp_x = INT((imp_Largeur / 2.54) * imp_dpi) imp_y = INT((imp_Hauteur / 2.54) * imp_dpi) CAPTION 17,"Dimension image : " + STR$(imp_x) + " x " + STR$(imp_y) + " px" ' Calcul écran ecr_Largeur = VAL(TEXT$(22)) ecr_Hauteur = VAL(TEXT$(24)) ecr_x = VAL(TEXT$(26)) ecr_y = VAL(TEXT$(28)) ecr_dpiX = INT(ecr_x * 254 / ecr_Largeur) / 100 ecr_dpiY = INT(ecr_y * 254 / ecr_Hauteur) / 100 CAPTION 29,"Px/inch Horizontal : "+ STR$(ecr_dpiX) CAPTION 30,"Px/inch Vertical : "+ STR$(ecr_dpiY) RETURN | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Calcul résolution ecran/imprimante Lun 20 Aoû 2012 - 10:36 | |
| Tu peux utiliser KGF.dll avec la fonction PrinterFunction code 8 pour obtenir toute une série d'informations utiles sur les capacités hardware et software de l'imprimante connectée (résolution, dimension, ...). Regarde KGF.HLP, sommaire, fonctions d'impression, PrinterFunction. | |
|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Calcul résolution ecran/imprimante Lun 20 Aoû 2012 - 10:52 | |
| Bonjour Klaus ! Oui je connaissais, mais sans vouloir te vexer, c'est tellement plus amusant de le faire en Panoramic pur, c'est plus enrichissant de voir et de comprendre les calculs... Dans mon cas, je voulais faire un calcul rapide et simple (j'aurais très bien pu le faire sous excel) mais bon, comme cela ne demande qu'une dizaine de ligne de code et que cela donnait l'occasion de parler de certains préjugés (écran=72 dpi)... Désolé pour les fôtes d'ortographe, j'ai toujours été fâché avec les ais, ait, ai... | |
|
Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Calcul résolution ecran/imprimante Lun 20 Aoû 2012 - 11:00 | |
| Ton programme est impeccable, et il établit clairement les relations entre les différentes notions de dimensions. C'est un outil général, utilisable partout.
La mention de ma fonction n'avait pour but que de lier cela à une imprimante réelle et d'aller chercher ses informations directement, sans avoir à les connaître. C'est intéressant dans le cas de changement d'imprimante, de travail sur une machine quelconque. | |
|
Nardo26
Nombre de messages : 2294 Age : 56 Localisation : Valence Date d'inscription : 02/07/2010
| Sujet: Re: Calcul résolution ecran/imprimante Lun 20 Aoû 2012 - 11:08 | |
| Tout à fait Klaus, Je ne dénigre pas ta fonction car elle est très utile dans le cas d'un programme plus complexe qui doit s'appuyer sur une imprimante (je l'ai d'ailleurs déjà utilisé dans un de mes programmes ) Mon bout de code est surtout d’intérêt pédagogique... | |
|
Contenu sponsorisé
| Sujet: Re: Calcul résolution ecran/imprimante | |
| |
|