IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
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

Interfaces Graphiques en Java Discussion :

Dessiner des Glyphes de caractères arabes


Sujet :

Interfaces Graphiques en Java

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut Dessiner des Glyphes de caractères arabes
    Bonjour,

    Je recherche un outil pour dessiner des glyphes de caractères arabes.
    La mise en place et la sélection des unicodes est terminée, il me reste à utiliser les polices pour dessiner les caractères en vectoriel.

    La documentation Java indique que 'Font#createGlyphVector()' n'est pas adapté aux glyphes -arabes http://docs.oracle.com/javase/7/docs/api/java/awt/Font.html#createGlyphVector(java.awt.font.FontRenderContext,%20char[])

    Connaissez-vous des outils qui dessine ces glyphes arabes ?

    Phildes

  2. #2
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Cette méthode peut servir il me semble si tu ne veux afficher qu'un seule caractère. Le problème ce sont les ligatures qui nécessitent un affichage différent suivant les autres caractère qui entourent. Comme cette méthode dessine chaque glyphe séparément, elle ne gère pas les ligature. Si tu veux obtenir un mot complet, il faut utiliser la méthode layoutGlyphVector, juste en dessous dans la javadoc.

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Cette méthode peut servir il me semble si tu ne veux afficher qu'un seule caractère. Le problème ce sont les ligatures qui nécessitent un affichage différent suivant les autres caractère qui entourent. Comme cette méthode dessine chaque glyphe séparément, elle ne gère pas les ligature.
    Merci pour ces renseignements.
    Si cette info peut être utile : j'avais testé cette fonction pour construire les glyphs-arabes et les ligatures étaient correctes, il ne reste qu'un tout petit nombre de problème avec les signes (ex:damma) hauts sur des lettres hautes, tel que alif avec hamza. Pour le reste la construction était tout à fait satisfaisante.

    Citation Envoyé par tchize_ Voir le message
    Si tu veux obtenir un mot complet, il faut utiliser la méthode layoutGlyphVector, juste en dessous dans la javadoc.
    Désolé de vous avoir dérangé quand la solution était écrite en dessous de la fonction.

    Merci infiniment.

    Phildes

  4. #4
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut
    Citation Envoyé par e-anim Voir le message
    Merci pour ces renseignements.
    Si cette info peut être utile : j'avais testé cette fonction pour construire les glyphs-arabes et les ligatures étaient correctes, il ne reste qu'un tout petit nombre de problème avec les signes (ex:damma) hauts sur des lettres hautes, tel que alif avec hamza. Pour le reste la construction était tout à fait satisfaisante.
    Je rencontre aussi des problèmes de position en hauteur avec des Signes de vocalisation (damma, fatha...) avec la fonction 'layoutGlyphVector()',

    En revanche, la fonction Graphics#drawString() dessine parfaitement les chaines de caractère arabes. Y aurait-il possibilité de récupérer les glyphes de cette fonction drawString ?
    (avec drawString() les signes de vocalisation sont parfaitement disposé au dessus ou en dessous de lettres, à la hauteur idoine)

    Phildes

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Salut,

    Je ne comprens pas pourquoi tu passes par les "glyphVector" au lieu d'utilser directement drawString() ?

    Essaye de voir si la forme vectorielle qu'on peut récupérer par la classe TextLayout te convient mieux. On peut l'obtenir par TextLayout.getOutline(AffineTransform);. Ce sera la forme brute (la "courbe" extérieure) sans plus aucun lien avec la notion de texte (en particulier, on n'a pas la baseline), mais tu peux obtenir ces informations par l'instance de TextLayout.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Je ne comprens pas pourquoi tu passes par les "glyphVector" au lieu d'utilser directement drawString() ?
    Pour construire des textes pour un fichier SWF (Flash).

    Citation Envoyé par joel.drigo Voir le message
    Essaye de voir si la forme vectorielle qu'on peut récupérer par la classe TextLayout te convient mieux. On peut l'obtenir par TextLayout.getOutline(AffineTransform);. Ce sera la forme brute (la "courbe" extérieure) sans plus aucun lien avec la notion de texte (en particulier, on n'a pas la baseline), mais tu peux obtenir ces informations par l'instance de TextLayout.
    Parfait je vais tester.
    (Pour la baseline, je suppose que les infos que me fournit la 'Font' seront suffisantes)

    Merci pour tous ces renseignements

    Phildes

  7. #7
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Billets dans le blog
    2
    Par défaut
    Ok, alors c'est exactement TextLayout qu'il te faut. Voir https://docs.oracle.com/javase/tutor...tconcepts.html pour plus de détails.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  8. #8
    Membre régulier
    Homme Profil pro
    Développeur multimédia
    Inscrit en
    Mai 2015
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur multimédia
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2015
    Messages : 7
    Par défaut
    Citation Envoyé par joel.drigo Voir le message
    Ok, alors c'est exactement TextLayout qu'il te faut. Voir https://docs.oracle.com/javase/tutor...tconcepts.html pour plus de détails.
    Parfait
    De plus, cela m'ouvre des perspectives pour ajouter des outils d'animation.

    Merci infiniment.

    Le sujet est résolu !

    Philippe Destrumel

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [WD17] Manipuler des chaines de caractères Arabe
    Par nouyanouya dans le forum WinDev
    Réponses: 7
    Dernier message: 22/11/2013, 12h35
  2. Réponses: 72
    Dernier message: 07/05/2010, 16h09
  3. Signes diacritiques des caractères arabes
    Par sidahmed dans le forum Word
    Réponses: 5
    Dernier message: 22/11/2007, 13h12
  4. Problème de stockage des caractères arabe dans Mysql?
    Par merci_tous dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 24/04/2007, 12h21
  5. Encodage des chaînes de caractères en arabe
    Par elghali_sofiene dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 19/04/2007, 18h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo