2017-06-22 3 views
0

J'ai lu mais je ne comprenais pas encore ce paragraphe:Comment puis-je obtenir le point à partir du fichier psd

Tous les points utilisés dans la définition d'un chemin sont stockés dans huit octets comme une paire de 32- composants de bits, composant vertical en premier. Les deux composants sont signés, nombre à virgule fixe avec 8 bits avant le point binaire et 24 bits après le point binaire. Trois bits de garde sont réservés dans les points pour éliminer la plupart des problèmes liés au dépassement arithmétique. Par conséquent, la plage pour chaque composant est 0xF0000000 à 0x0FFFFFFF représentant une plage de -16 à 16. La limite inférieure est incluse, mais pas la limite supérieure . Cette plage limitée est utilisée car les points sont exprimés par rapport à la taille de l'image. La composante verticale est donnée avec par rapport à la hauteur de l'image, et la composante horizontale est donnée par rapport à la largeur de l'image. [0,0] représente le coin supérieur gauche de l'image ; [1,1] ([0x01000000,0x01000000]) représente en bas à droite. Sous Windows, l'ordre des octets des composants du point de chemin est inversé; vous devez permuter les octets lors de l'accès à chaque valeur 32 bits de .

je l'ai fait un test de cette: link

et obtenir le point de ce qui suit:

  • x1: 7e0e42 y1: 0
  • x2: 7e0e42 y2: 0
  • x3: 7e0e42 y3: 0

  • x1: 1000000 y1: 0

  • x2: y2 1000000: 0
  • x3 y3: 1000000: 0
  • le fisrt est en haut à gauche de rect rouge;
  • la seconde est en haut
  • droite de rect rectiligne;
  • la largeur de la toile est 790px
  • en haut à gauche est à 389px

Comment puis-je obtenir le nombre de 389 de 7e0e42? Je ne peux pas comprendre la signification de ce paragraphe.

Merci beaucoup

Répondre

0

Un peu en retard, mais:

Votre première valeur x est 0x007e0e42 dans la représentation du point fixe mentionné dans le texte. Cela signifie 0 + 0x7e0e42/0xffffff, ou 0,49240505695343 (environ) en virgule flottante. Rappelez-vous que les coordonnées sont "par rapport à la taille de l'image". Si vous multipliez cela avec la largeur de l'image de 790, vous obtenez 388,999994993209839, ce qui devrait bien arrondir à 389, ce qui est ce que vous attendiez.

Mystère résolue. :-)