L'unité de distance - English Metric Units (EMU) [OpenXML]
En ce moment je suis en train de travailler avec
OpenXML et j'avais besoin de connaitre la dimension affiché en pixel d'une image. Pour cela il me suffit de récuperer les informations de la balise.
<wp:extent cx="914400" cy="638175"/>
Mais quel est l'unité de ce cx/cy ? voyons ce que dit les specification du format OpenXML (un PDF de 4741 pages) :
5.1.8.3 ext (Extents)
This element specifies the size of the bounding box enclosing the referenced object.
Attributes
- cx (Extent Length)
This attribute specifies the length of the extents rectangle in EMUs. The possible values for this attribute are defined by the ST_PositiveCoordinate simple type (§5.1.11.43).
- cy (Extent Width)
This attribute specifies the width of the extents rectangle in EMUs. The possible values for this attribute are defined by the ST_PositiveCoordinate simple type (§5.1.11.43).
OK, l'unité utilisé est l'EMU, voyons voir à la section 5.1.11.43 pour en savoir plus sur cette unité.
5.1.11.43 ST_PositiveCoordinate (Positive Coordinate)
This simple type represents a positive position or length in EMUs.
This simple type's contents are a restriction of the long type in the http//www.w3.org/2001/XMLSchema namespace.
This simple type also specifies the following restrictions:
- This simple type has a minimum value of greater than or equal to 0.
- This simple type has a maximum value of less than or equal to 27273042316900.
J'apprend donc que le type du nombre est un long trés interessant mais voyons ce que nous dit google à propos de cette unité : RIEN, étonnament Google n'est pas bavard avec cette unité. Pour ne pas perdre de temps, je décide de faire le ratio entre des images de taille connu et la valeur donnée. Bonne nouvelle il semble qu'il s'agit d'une constante.
1 px = 9525 EMU
Maintenant que mes tests sont finis, j'essaye d'en savoir un peu plus sur cette unité mysterieuse, à force de Google je tombe sur "cette page" :
Absolute distances are specified in English Metric Units (EMUs), occasionally referred to as A units; there are 360000 EMUs per centimeter, 914400 EMUs per inch, 12700 EMUs per point.
(http://www.google.com/codesearch?q=+%22English+Metric+Units%22+show:eaZ_x4dg4J8:mocfAcyFo3I:pJHGgdmKgHE&sa=N&cd=1&ct=rc&cs_p=http://distfiles.master.finkmirrors.net/wv2-0.2.2.tar.bz2&cs_f=wv2-0.2.2/doc/escher/escher.html#a0)
Un rapide calcul (914400 EMU per inch / 9525 EMU = 96 dpi ) me montre que Word utilise une "impression" de 96 dpi ce qui semble être un résultat logique, je peux donc dire que 1px vaut 9525 EMU dans le cas de Word.
Malheureusement je n'arrive pas à trouver l'origine de cette unité et quelle est son utilité par rapport à toutes les autres unités existantes. Si quelqu'un connait la réponse merci de laisser un commentaire.