Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Membre à l'essai
    Largeur et hauteur de texte en fonction de la taille de police.
    Bonjour.

    Dans le cadre d'un projet en programmation orientée objet, je suis entrain d'écrire un parseur SVG.
    Je décompose chaque élément en un objet qui possède une largeur, une hauteur et des coordonnées.

    Ma question serait de savoir comment récupérer la largeur et la hauteur du texte dans un tel fichier. Y'a-t-il un moyen de les déduire de la taille de police au moyen d'un petit calcul ? Ou y'a-t-il des attributs particuliers pour ces paramètres ?
    Merci pour votre aide.

  2. #2
    Modérateur

    Hello,

    Citation Envoyé par auloma Voir le message
    Ma question serait de savoir comment récupérer la largeur et la hauteur du texte dans un tel fichier.
    En calculant le rendu de ce texte et en mesurant là où commencent et s'arrêtent les pixels.

    Citation Envoyé par auloma Voir le message
    Y'a-t-il un moyen de les déduire de la taille de police au moyen d'un petit calcul ?
    Non. La hauteur, à la rigueur, on peut en avoir une approximation, parce que la taille de la police est censée exprimer la hauteur des caractères.
    Du moins, des caractères "classiques", genre un M majuscule. Mais : un texte pourrait n'utiliser que des caractères moins hauts, et il pourrait utiliser des caractères moins classiques, qui montent plus haut ou descendent plus bas. La police pourrait aussi faire des effets de style.

    Pour la largeur, à moins que la police soit à chasse fixe il faut au moins aller demander la largeur de chaque caractère du texte. Et en réalité ça ne suffit pas, car une police ne donne pas directement les largeurs, elle donne l'avancée à appliquer (en gros, à quelle distance à côté du caractère en cours il faut afficher le caractère suivant). Ces avancées ne sont pas les mêmes en fonction de quel caractère est après quel autre. En plus les caractères ne s'affichent pas forcément avec les mêmes glyphes en fonction des caractères autour d'eux. Et rien ne garantit qu'un glyphe ne va pas écrire à sa gauche, ou bien plus à sa droite que là où écrire le prochain glyphe.

    Bref, il faut calculer le rendu. C'est en fait assez compliqué, car la plupart du temps on a pas besoin de connaître la taille du rendu du texte, mais seulement à partir d'où il faut écrire la suite. Le moteur de rendu s'en fiche s'il déborde.

    Citation Envoyé par auloma Voir le message
    Ou y'a-t-il des attributs particuliers pour ces paramètres ?
    Pas compris
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java