Dimensions en cm d'une image.

angersrezo Messages postés 5 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 3 juillet 2012 - 30 juin 2012 à 13:01
angersrezo Messages postés 5 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 3 juillet 2012 - 1 juil. 2012 à 11:48
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

NHenry Messages postés 15113 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 22 avril 2024 159
30 juin 2012 à 13:14
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2012 à 13:25
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2012 à 13:38
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
30 juin 2012 à 14:45
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
angersrezo Messages postés 5 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 3 juillet 2012
30 juin 2012 à 16:33
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.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2012 à 16:54
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2012 à 17:37
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
0
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
30 juin 2012 à 17:37
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
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
30 juin 2012 à 17:44
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
0
angersrezo Messages postés 5 Date d'inscription jeudi 21 juin 2012 Statut Membre Dernière intervention 3 juillet 2012
1 juil. 2012 à 11:48
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.
0
Rejoignez-nous