| .. | ||
| Decor-Regular.ttf | ||
| font_pixelizer.py | ||
| IBMPlexMono-Regular.ttf | ||
| README.md | ||
Font Pixelizer
Ensemble d'outils Python pour transformer n'importe quelle typographie en version pixelisée avec paramètres.
Fonctionnalités
- Pixelisation complète : Convertit une fonte vectorielle en version pixelisée
- Contrôle de la taille des pixels : De très détaillé à très pixellisé
- Modification des proportions : Hauteur d'x et largeur ajustables
- Support monospace : Option pour forcer un espacement fixe
- Formes de pixels personnalisables : Carré, rond, losange
Dépendances
Ce site peut aider à l'installation: https://avoidsoftware.sarahgarcin.com/dependances.html
Installer python fontforge
FontForge est un éditeur de polices de caractères libre et open source. En plus d’intégrer Python, FontForge installe généralement un module Python accessible à l’exécutable Python du système. FontForge est disponible dans son ensemble selon les termes de la GNU GPL version 3 ou toute version ultérieure. Cette extension permet la manipulation de typographies.
sur macOS
Nécessite Homebrew
- Ouvrir le terminal
-Lancer la commande
brew install fontforge-Tester si Fontforge est bien exécutable par Python :python3 import fontforge, psMat-Si la commande ne fonctionne pas (Mac est un peu capricieux quand il s’agit de Fontforge), il faut déplacer le module Fontforge vers les dépendances de Python :
sudo cp $(find $(brew --prefix fontforge)/. -name "fontforge.so") $(python3 -c "import site;print(site.getsitepackages()[0]);")sudo cp $(find $(brew --prefix fontforge)/. -name "psMat.so") $(python3 -c "import site;print(site.getsitepackages()[0]);")
sur Linux
- Ouvrir le Terminal en utilisateur root
- Mettre à jour le gestionnaire de paquets :
sudo apt update
sudo apt upgrade - Installer Python Fontforge
python3-fontforge
Installer les autres dépendances
pip install fontforge svgpathtools lxml --break-system-packages
Utilisation
Script simple (une fonte)
python3 font_pixelizer.py votre_fonte.ttf
Paramètres modifiables dans le script :
# Taille des pixels
pixel_size = 80 # Plus grand = moins de détails, effet plus rétro
# Échelles de déformation
x_height_scale = 1.0 # 0.5 = écrasé, 2.0 = étiré verticalement
width_scale = 1.0 # 0.5 = condensé, 2.0 = étendu horizontalement
# Monospace
monospace = False # True pour forcer espacement fixe
monospace_width = None # Largeur fixe (None = auto-calculé)
# Style des pixels
pixel_shape = "square" # "square", "round", "diamond"
pixel_gap = 0 # Espace entre pixels (0 = collés)
round_corners = 0 # Rayon arrondi des coins (0 = coins droits)
# Export
new_family_name = "Pixel"
font_weight = "Regular"
export_formats = ["ttf"] # ["ttf", "otf", "woff", "woff2"]
Ajouter de l’aléatoire
Pour ajouter de l’aléatoire dans les paramètres:
- voir exemple de configuration ligne 117 (commentée par défaut)
- voir exemple de configuration ligne 235 (commentée par défaut)
=> randrange(min, max, step)
Exemples de configuration
Fonte rétro 8-bit classique
pixel_size = 120
x_height_scale = 1.0
width_scale = 1.0
pixel_shape = "square"
pixel_gap = 0
monospace = True
Fonte pixel moderne arrondie
pixel_size = 60
x_height_scale = 1.0
width_scale = 1.0
pixel_shape = "square"
pixel_gap = 2
round_corners = 8
monospace = False
Fonte condensée haute résolution
pixel_size = 40
x_height_scale = 1.2
width_scale = 0.8
pixel_shape = "square"
monospace = False
Fonte rétro avec pixels espacés
pixel_size = 100
x_height_scale = 1.0
width_scale = 1.0
pixel_shape = "round"
pixel_gap = 10
monospace = True
Styles de pixels disponibles
Square (carré)
pixel_shape = "square"
round_corners = 0 # Coins droits
Square arrondi
pixel_shape = "square"
round_corners = 15 # Coins arrondis
Round (cercle)
pixel_shape = "round"
Diamond (losange)
pixel_shape = "diamond"
Comment ça marche ?
- Extraction : Le script extrait tous les glyphes de la fonte source en SVG
- Analyse : Chaque glyphe est analysé pour déterminer sa forme
- Grille : Une grille de pixels est calculée selon
pixel_size - Raycasting : Pour chaque position de pixel, on teste si elle est dans le contour original
- Génération : Les pixels sont créés sous forme de SVG
- Reconstruction : Une nouvelle fonte est assemblée avec tous les glyphes pixelisés
- Export : La fonte est exportée au format souhaité
Licence
GNU GPL