Texte dans une image : gestion manuelle du débordement (césure)

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Texte dans une image : gestion manuelle du débordement (césure)

par Calimero » 08 avr. 2008, 15:50

Blague à part, essaye de connaître la position d'une caractère.
Pour cela, si je comprends bien, j'aurai besoin de dresser un tableau de correspondance entre le caractère et la largeur en pixels qu'il occupe. Ce qui serait assez court puisque les seuls caractères que j'exploite sont les 26 lettres capitales, les 10 chiffres, l'espace et quelques caractères de ponctuation.

Mais dois-je vraiment faire cela moi-même ? Est-ce que ce tableau n'a pas déjà été fait par quelqu'un d'autre ?

par Hywan » 08 avr. 2008, 15:42

Sur Mac ça risque d'être compliqué.

Blague à part, essaye de connaître la position d'une caractère.

par Calimero » 08 avr. 2008, 15:12

Du monospace :P :mrgreen:
Gros vilain. Pour la peine tu me referas cette image from scratch avec mspaint :twisted:

par Sékiltoyai » 08 avr. 2008, 14:42

Du monospace :P :mrgreen:

par Calimero » 08 avr. 2008, 12:13

En revanche, il te reste à connaître la position de ta lettre dans l'image, et ça, c'est pas gagné :?. Mais pourquoi utiliser Arial (qu'on a trop vu ...) ?
Ici le problème de langue ne se posera pas, heureusement. On reste sur du script occidental :-)

Pour l'Arial, c'est par cohérence avec le reste de l'interface du site, et aussi parcequ'elle rend bien en petite taille.

Pour info, voici un exemple de ce que je produis (ici y'a un seul mot, donc pas de souci de césure) :

Image

par Hywan » 08 avr. 2008, 12:07

Hey,

c'est un problème que je me suis également posé mais je n'ai pas trouvé de réponses à l'époque. Comme c'était un projet annexe de l'annexe de l'annexe, je n'ai pas approfondis.
Tu peux déjà regarder comment appliquer les règles de césures (regarde en Latex, c'est très documenté). Bien évidemment, ça diffère selon les langues, et c'est le point gênant, mais une bonne base de données est c'est réglé.

En revanche, il te reste à connaître la position de ta lettre dans l'image, et ça, c'est pas gagné :?. Mais pourquoi utiliser Arial (qu'on a trop vu ...) ?

Texte dans une image : gestion manuelle du débordement (césu

par Calimero » 08 avr. 2008, 12:02

Bonjour,

Petite question sur laquelle, j'en suis sûr, certains d'entre vous ont déjà buté ;-)

Dans un de mes sites, j'ai besoin de générer en PHP (avec GD) une image contenant un texte variable issu d'une base de données. Ce texte fait entre 1 et 10 mots et entre 8 et 200 caractères, tout en majuscules.

L'image que je dois générer doit être de dimension fixe pour toutes ces "vignettes". La police utilisée est une police à chasse non-fixe (Arial).

Mon problème se situe au niveau de la gestion du débordement de texte. Le texte pouvant être bien plus grand que la limite autorisée par l'image qui va le contenir, je dois le fractionner (insérer des retours à la ligne) pour avoir un rendu propre et éviter que le texte n'aille déborder hors de l'image. L'image me permet d'afficher le texte sur 4 lignes maxi.

Je ne peux pas me baser uniquement sur le nombre de caractères car un "i" est bien moins large qu'un "m". Je ne peux pas non plus me baser uniquement sur le nombre de mots car leur longueur est assez variable (de 1 à 15 caractères par mot pour vous donner une idée).

Je cherche donc une façon de gérer proprement l'introduction de ces césures ( \n ) dans mon texte. (Evidemment, j'ai déjà un bout de code dégueulasse basé sur des constantes arbitraires qui marche pas trop mal dans 70% des cas, mais je n'arrive pas à penser une façon propre et générique de traiter le problème)

Avez-vous des expériences sur le sujet ? :)