Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.python > #3197

Re: Caraxtères graphiques

From "Pascal J. Bourguignon" <pjb@informatimago.com>
Newsgroups fr.comp.lang.python
Subject Re: Caraxtères graphiques
Date 2019-05-29 15:32 +0200
Organization Informatimago
Message-ID <m28sup2xog.fsf@despina.home> (permalink)
References <b26e5faa-ae7b-463d-816e-995a08ac09e6@googlegroups.com>

Show all headers | View raw


Heu Bord <heubord@gmail.com> writes:

> Salut à tous
> Je suis débutant en python. Je veux écrit un petit script qui dessine les caractères et les affiche comme tel.
> Je voudrais avoir une piste

Il faut diviser le problème.

Pour dessiner quoi que ce soit, il faut une bitmap (ou un pixmap pour
dessiner en couleur).

Pour dessiner des caractères, il faudra avoir une description de la
forme du caractère à dessiner, et effectuer le dessin, en ajustant la
couleur des pixels dans la bitmap (noir/blanc) ou la pixmap (niveau de
gris, couleurs).

Pour afficher cette image (bitmap ou pixmap), il faut un écran
graphique, et en général, un système d'interface graphique à base de
fenêtre.  Ce qui signifie qu'il faudra ouvrir une fenêtre, et transférer
l'image pour l'affichier.

Le choix du système d'interface graphique est imposé par le système sur
lequel le programme devra fonctionner; dans certains cas, on a le choix
de la bibliothèque d'outils graphiques (toolkit) qu'on peut utiliser
(par exemple, si le système graphique est X11 on peut utiliser
différents toolkits et systèmes de gestion des fenêtres).

Une fois qu'on a plus d'information sur ces éléments, on peut effectuer
une recherche sur les bibliothèques python existant pour s'interfacer
avec, et pour manipuler directement un python les images (bitmap ou
pixmap).

Tu ne dis pas non plus d'où tu vas obtenir la description de la forme
des caractères.  Si tu veux utiliser une description standard (par
exemple, une police de caractère TrueType), alors on se demande pourquoi
tu veux implémenter le dessin en python, alors que les systèmes
d'interfaces graphiques sont capable d'afficher du texte directement à
partir de ces fichiers de police de caractères.  Alors je suppose que tu
veux écrire tes propres description de caractères.  Mais sinon, il
faudrait aussi chercher des bibliothèques python pour lire les fichiers
définissant ces polices de caractères, en extraire la description d'un
caractère, et l'interpréter pour effectuer son dessin.


On peut vouloir faire ça lorsqu'on veut définir comme caractère des
symboles qui n'existent pas dans les polices et dans les encodages
standard.

Par exemple, dans l'application GSharp (éditeur de partition musicale
implémenté en Common Lisp), on implémente un système similaire à
metafont pour définir et dessiner les caractères, et on défini de tels
caractères pour les clés musicales, sous forme vectorielle.

https://github.com/informatimago/gsharp/blob/master/mf.lisp
https://github.com/informatimago/gsharp/blob/master/sdl.lisp#L316

Dans ce cas, le système d'interface graphique utilisé est CLIM, et on
dessine "directement" dans la fenêtre avec clim:draw-design dans
draw-shape, qui transforme la description vectorielle de la forme
(effectue la "rasterisation") en bitmap, et l'affiche.
https://github.com/informatimago/gsharp/blob/master/sdl.lisp#L289

Avec des systèmes graphiques plus rudimentaires, ça peut être plus
"intéressant".


Pour un débutant, il est aussi possible d'utiliser un système graphique
simplifié comme PGL (Portable Graphics Library). Il semble que pgl en
python utilise TkInter pour l'interface graphique, et ne passe pas par
le programme Java SPL comme backend pour effectuer l'affichage dans le
système de fenêtre de l'ordinateur, alors c'est encore plus simple.
http://people.reed.edu/~esroberts/csci121/pgldoc/index.html
http://people.reed.edu/~esroberts/csci121/programs/pgl-v0.84.zip

-- 
__Pascal J. Bourguignon__
http://www.informatimago.com

Back to fr.comp.lang.python | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Caraxtères graphiques Heu Bord <heubord@gmail.com> - 2019-05-28 15:58 -0700
  Re: Caraxtères graphiques Nicolas <nicolasp@aaton.com> - 2019-05-29 08:58 +0200
  Re: Caraxtères graphiques "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-05-29 15:32 +0200
    Re: Caraxtères graphiques "Pascal J. Bourguignon" <pjb@informatimago.com> - 2019-05-29 15:48 +0200

csiph-web