Dimensions en cm d'une image.

Signaler
Messages postés
5
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
3 juillet 2012
-
Messages postés
5
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
3 juillet 2012
-
Bonjour.
Je cherche a connaitre les dimensions en cm d'une image.
Il s'agit en fait de plans, que je voudrais imprimer.
J'utilise très occasionnellement VB6 pour réaliser des petits programmes.
Mon objectif est d'imprimer des plans pour des lancements en fabrication, a la demande.
J'ai les solutions pour imprimer, changer les formats de sorties, a3/a4 portrait/paysage.
Je récupère facilement l'orientation grâce au ration Height/Width d'un objet image du plan, mais quand au format c'est une autre histoire.
En fait, quand je met les propriétés de l'objet image Scalemode en Pixel, j'obtiens bien les dimensions en points de l'image.
Mais quand je les demandes en Cm, il me retourne une valeur incorrecte.
Genre:
Pixels : 3328
et cm 88.05
Alors que la résolution en ppp est de 400, donc 8.32 pouce = 21 cm.
pour un format 21x29.7 (A4).
La résolution est a 400 ppp réellement.
Il s'agit probablement de la résolution de l'affichage qu'il utilise et non pas celle du fichier.
Il existe une solution pour récupérer cette info?
J'ai épluché les forum sur ce problème, beaucoup de sujet, mais rien qui ne semble réellement solutionner mon problème.
Je vous rappel que je programme que occasionnellement, il me faut un peut des solutions clefs en mains pour m'en sortir.

Vincent.

J'ai épluché les forum sur ce problème, beaucoup de sujet, mais rien qui ne semble réellement solutionner mon problème.

10 réponses

Messages postés
14743
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
4 décembre 2020
148
Bonjour,

Pour ce genre de manip, le plus simple est que tu fasse le calcul toi-même.
Parfois, les outils de conversions de VB6 sont un peu dépassés.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices.[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ).[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualBasic (onglet Références dans les propriétés du projet).[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés/list
---
Mon site
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Bonjour,
Intéresse-toi donc à l'utilisation des méthodes Scalex et Scaley (ton aide VB6 sur ces deux mots).


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Une "petite" question à cent sous, toutefois, après avoir lu et relu ton explosé (car je commence à avoir un doute) :
développes-tu bien sous VB6 et non sous VBA (le VBA de Office) ?

Question subsidiaire : qu'appelles-tu "résolution d'un fichier", exactement ?



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
7113
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 décembre 2020
116
Bonjour,
Comme te l'a dit NHenry, c'est un clacul à faire:
En fonction de ta programmation il te faut récupérer : w, h, rw et rh

w = largeur de l'image
h = hauteur de l'image
rw = résolution en largeur de l'image en ppp
rh = résolution en hauteur de l'image en ppp

Largeur en cm: (w / rw) * 2.54
Hauteur en cm = (h / rh) * 2.54'

@+Le Pivert
Messages postés
5
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
3 juillet 2012

Ok je vais fouiller sur Scalex Scaley.
Mon aide ne fonctionne pas, mais je vais trouver ca sur le net sans problèmes je pense.
J'ai aussi trouvé un programme top mais bon c'est une usine a gaz, et super performant. http://www.vbfrance.com/codes/LIRE-ECRIRE-METADONNEES-EXIF-IPTC-PNG-GIF-FORMAT_38909.aspx

Je suis bien en VB6 oui.
si je ne trouve pas de solution simple je m'orienterai vers la récupération du programme que j'ai précédemment cité, et je le modifie pour l'intégrer dans le mien.
C'est pas très gracieux, mais j'aurai quelque chose de stable.

Vincent.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Jette donc un petit coup d'oeil au dernier source que j'ai déposé (étiquettes). Tu y trouveras comment on utilise ces transpositions en fonction du dispositif (form, imprimante, picturebox, ...)



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Ou encore : petite expérience parlante :
Sur un form : un bouton de commande et une picturebox
test :
Private Sub Command1_Click()
  MsgBox "sur le form : ===>> " & Me.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres" & vbCrLf & _
  "sur la picturebox : ===>> " & Picture1.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres" & vbCrLf & _
  "alors que sur l'imprimante ===>> " & Printer.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres"
End Sub

et c'est bien normal.



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
7113
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
5 décembre 2020
116
Tu peux regarder ceci pour récupérer la résolution ppp de l'image:

http://www.vbfrance.com/forum/sujet-EXTRAIRE-RESOLUTION-IMAGE_750171.aspx

@+Le Pivert
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
232
Ou encore : petite expérience parlante :
Sur un form : un bouton de commande et une picturebox
test :
Private Sub Command1_Click()
  MsgBox "sur le form : ===>> " & Me.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres" & vbCrLf & _
  "sur la picturebox : ===>> " & Picture1.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres" & vbCrLf & _
  "alors que sur l'imprimante ===>> " & Printer.ScaleX(3328, vbPixels, vbCentimeters) & " centimètres"
End Sub

et c'est bien normal.
Car on passe d'unités logiques à des unités physiques et la conversion dépend du hdc (dispositif de sortie). Or, les unités logiques ne sont pas les mêmes à l'écran et sur l'imprimante.

Refaisons maintenant l'expérience, mais avec des unités physiques et non logiques.
Private Sub Command1_Click()
  MsgBox "sur le form : ===>> " & Me.ScaleX(331, vbMillimeters, vbCentimeters) & " centimètres" & vbCrLf & _
  "sur la picturebox : ===>> " & Picture1.ScaleX(331, vbMillimeters, vbCentimeters) & " centimètres" & vbCrLf & _
  "alors que sur l'imprimante ===>> " & Printer.ScaleX(331, vbMillimeters, vbCentimeters) & " centimètres"
End Sub


Parlant .


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
Messages postés
5
Date d'inscription
jeudi 21 juin 2012
Statut
Membre
Dernière intervention
3 juillet 2012

Avec tout ca si je trouve pas mon bonheur :-)
Je vais essayer ca, dans la journée si on me laisse un peut de temps (dure la condition de père de jeunes enfants) si non je regarde ca Lundi au travail.
Merci.

Vincent.