Βιβλιοθήκη Python για ανάγνωση γραμματοσειρών
Ανοιχτού κώδικα API Python που ενδυναμώνει προγραμματιστές λογισμικού και σχεδιαστές να διαχειρίζονται, επεξεργάζονται και αναλύουν γραμματοσειρές με ευκολία.
Το FontTools παίζει ζωτικό ρόλο στο σχεδιασμό, την εμπορική σήμανση και την επικοινωνία, και οι γραμματοσειρές είναι τα δομικά στοιχεία της οπτικής αισθητικής. Στην ψηφιακή εποχή, η διαχείριση και η επεξεργασία γραμματοσειρών έχουν γίνει ολοένα και πιο σημαντικές. Ένα ισχυρό εργαλείο που έχει κερδίσει δημοτικότητα μεταξύ προγραμματιστών και σχεδιαστών είναι η βιβλιοθήκη FontTools. Το FontTools είναι μια ευέλικτη ανοιχτού κώδικα βιβλιοθήκη Python που παρέχει ένα ολοκληρωμένο σύνολο εργαλείων για εργασία με γραμματοσειρές και έχει αναδειχθεί ως ισχυρό εργαλείο για ενθουσιώδεις των γραμματοσειρών, σχεδιαστές, προγραμματιστές και τυπογράφους. Το εκτενές σύνολο χαρακτηριστικών του, σε συνδυασμό με τη διεπαφή που βασίζεται σε Python, το καθιστούν εξαιρετική επιλογή για εργασίες και έργα σχετιζόμενα με γραμματοσειρές.
Το FontTools είναι μια ανοιχτού κώδικα βιβλιοθήκη που επιτρέπει στους προγραμματιστές λογισμικού να αλληλεπιδρούν με αρχεία γραμματοσειρών προγραμματιστικά. Προσφέρει μια ευρεία γκάμα λειτουργιών για τη διαχείριση, την επεξεργασία και την ανάλυση γραμματοσειρών. Υποστηρίζει δυνατότητες όπως η διαχείριση γραμματοσειρών με διάφορους τρόπους, βασικές λειτουργίες επεξεργασίας γλύφων, βελτιωμένη συγχώνευση γραμματοσειρών, αφαίρεση μεμονωμένων γλύφων, υποστήριξη πινάκων SFNT, αναγνώριση και υλοποίηση διαφόρων τιμών SFNT, τροποποίηση περιγραμμάτων γλύφων, προσαρμογή μετρικών γραμματοσειρών, αλλαγή κωδικοποίησης γραμματοσειράς, προσθήκη ή αφαίρεση πινάκων, μετατροπή ορισμών διάταξης μεταξύ διαφορετικών συστημάτων διάταξης, εύρεση και επεξεργασία συμβολοσειρών ονομάτων, κ.ά.
Η βιβλιοθήκη FontTools δίνει τη δυνατότητα στους προγραμματιστές λογισμικού να έχουν προγραμματιστική πρόσβαση, να επεξεργάζονται και να αναλύουν διάφορες πτυχές των αρχείων γραμματοσειρών. Υποστηρίζει αρκετές μορφές γραμματοσειρών, συμπεριλαμβανομένων των TrueType (TTF), OpenType (OTF), AFM, σε κάποιο βαθμό Type 1, και ορισμένες μορφές ειδικές για Mac, καθιστώντας την μια ευέλικτη επιλογή για εργασία με διαφορετικούς τύπους γραμματοσειρών. Το FontTools ωφελείται από μια ζωντανή και υποστηρικτική κοινότητα. Το έργο είναι ανοιχτού κώδικα και ενεργά συντηρείται, με τακτικές ενημερώσεις και διορθώσεις σφαλμάτων. Είτε αυτοματοποιείτε τη διαχείριση γραμματοσειρών, είτε βελτιώνετε τις γραμματοσειρές, είτε διεξάγετε λεπτομερή ανάλυση γραμματοσειρών, το FontTools παρέχει τα απαραίτητα εργαλεία και την ευελιξία για την αποτελεσματική επίτευξη των στόχων σας.
Ξεκινώντας με το FontTools
Το FontTools απαιτεί Python 3.8 ή νεότερο. Ο συνιστώμενος τρόπος εγκατάστασης του FontTools είναι μέσω PyPI. Παρακαλούμε χρησιμοποιήστε την παρακάτω εντολή για ομαλή εγκατάσταση.
Εγκατάσταση FontTools μέσω NuGet
pip install fonttools Μπορείτε επίσης να το εγκαταστήσετε χειροκίνητα· κατεβάστε τα πιο πρόσφατα αρχεία έκδοσης απευθείας από το αποθετήριο GitHub.
Επεξεργασία και Διαχείριση Γραμματοσειρών μέσω Python API
Η ανοιχτή βιβλιοθήκη FontTools είναι πολύ εύκολη στη χρήση και περιλαμβάνει αρκετά σημαντικά χαρακτηριστικά που δίνουν τη δυνατότητα στους προγραμματιστές λογισμικού να χειρίζονται γραμματοσειρές με διάφορους τρόπους στις εφαρμογές Python τους. Επιτρέπει την εξαγωγή πληροφοριών από αρχεία γραμματοσειρών, την τροποποίηση των περιγραμμάτων των γλυφών, τη διαχείριση μετρικών και ακόμη τη δημιουργία νέων γραμματοσειρών από το μηδέν, την αυτοματοποίηση επαναλαμβανόμενων εργασιών σχετικών με γραμματοσειρές κ.λπ. Χρησιμοποιώντας τη βιβλιοθήκη FontTools, οι προγραμματιστές λογισμικού μπορούν επίσης να τροποποιούν τα περιγράμματα των γλυφών, να προσαρμόζουν τις μετρικές, να αλλάζουν την κωδικοποίηση και να προσθέτουν ή να αφαιρούν πίνακες. Αυτή η ευελιξία επιτρέπει στους σχεδιαστές να ρυθμίζουν τις γραμματοσειρές σύμφωνα με συγκεκριμένες απαιτήσεις ή να δημιουργούν προσαρμοσμένες εκδόσεις για τα έργα τους.
Πώς να τροποποιήσετε τις διαδρομές περιγράμματος μέσω Python API;
path_orig = get_outline(font, "a")
startdraw(200,200)
paths = []
for i in path_orig:
if i[0] == 'moveTo':
path = draw.BezierPath()
path.moveTo((i[1][0]))
if i[0] == 'lineTo':
path.lineTo((i[1][0]))
if i[0] == 'qCurveTo':
path.qCurveTo(*(i[1]))
if i[0] == 'closePath':
path.closePath()
paths.append(path)
finalpath = paths[0].difference(paths[1])
finalpath.scale(0.3) #let's scale it down!
draw.fill(0.5)
draw.stroke(0)
draw.drawPath(finalpath)
show()
Διαχείριση Γλύφων μέσω Python API
Η ανοιχτού κώδικα βιβλιοθήκη FontTools καθιστά εύκολο για τους προγραμματιστές λογισμικού να χειρίζονται μεμονωμένα γλύφους προγραμματιστικά. Παρέχει μεθόδους για πρόσβαση και τροποποίηση των περιγραμμάτων, των μετρικών και των χαρακτηριστικών των γλύφων, δίνοντας στους χρήστες την ευελιξία να προσαρμόζουν τις γραμματοσειρές σύμφωνα με τις συγκεκριμένες ανάγκες τους. Είτε πρόκειται για ρύθμιση ζευγών κεραμικής, αλλαγή σχήματος γλύφων, προσθήκη λιγκατούρων ή σύγκριση περιγραμμάτων γλύφων, το FontTools απλοποιεί τη διαδικασία χειρισμού γλύφων. Το παρακάτω παράδειγμα δείχνει πώς να συγκρίνετε τα περιγράμματα δύο γλύφων και να εμφανίσετε τα αποτελέσματα χρησιμοποιώντας κώδικα Python.
Πώς να συγκρίνετε τα περιγράμματα δύο γλύφων χρησιμοποιώντας Python API;
from fontTools.ttLib import TTFont
from fontTools.pens.recordingPen import RecordingPen
font = TTFont(filename)
cmap = font.getBestCmap()
gs = font.getGlyphSet()
g1 = gs[cmap[ord("A")]]
g2 = gs[cmap[ord("B")]]
p1 = RecordingPen()
p2 = RecordingPen()
g1.draw(p1)
g2.draw(p2)
print(p1.value == p2.value)
Δημιουργία και Μετατροπή Γραμματοσειρών μέσω Python API
Η ανοιχτού κώδικα βιβλιοθήκη FontTools προσφέρει λειτουργίες για τη δημιουργία νέων αρχείων γραμματοσειρών ή τη μετατροπή υπαρχόντων σε διαφορετικές μορφές. Αυτή η δυνατότητα είναι ιδιαίτερα χρήσιμη για σχεδιαστές και προγραμματιστές που χρειάζονται να δημιουργήσουν προσαρμοσμένες γραμματοσειρές ή να προσαρμόσουν γραμματοσειρές για συγκεκριμένες πλατφόρμες. Με το FontTools, οι χρήστες μπορούν να δημιουργήσουν στιγμιότυπα γραμματοσειρών με διαφορετικά βάρη, στυλ και παραλλαγές, ή να μετατρέψουν γραμματοσειρές μεταξύ μορφών TrueType και OpenType αβίαστα. Το παρακάτω παράδειγμα δείχνει πώς να μετατρέψετε τη μορφή CFF σε μορφή CFF2 χρησιμοποιώντας εντολές Python.