« [Python]TTC(TrueType フォントコレクション)フォントの収録書体数(INDEX)を取得する(その1) | トップページ | [OS12]文字ビューアを出す(文字パレット) »

[Python]TTC(TrueType フォントコレクション)フォントの収録書体数(INDEX)を取得する(その2)

FontLabでTTCフォント見るとこんな感じ

Screencapture_932x452_20211107111922

これを、取得したいわけです。



まずは準備
【1】エディタはVisual Studio Code https://code.visualstudio.com
【2】Visual Studio Code Python 拡張機能
https://marketplace.visualstudio.com/items?itemName=ms-python.python
【3】pipの package installer for Pythonのアップデート
ターミナルで
/usr/bin/python3 -m pip install --upgrade pip
【4】Pillow Library
https://pillow.readthedocs.io/en/stable/installation.html
インストール ターミナルで
/usr/bin/python3 -m pip install Pillow
【5】Pillow アップデート
/usr/bin/python3 -m pip install --upgrade Pillow
これで準備完了


で 色々やって(Pythonホントビギナー以下だからね…私は)
こんな感じで TTCのINDEX番号と書体名を取得出来るようになりました

ダウンロード - getttcindex.py.zip

Screencapture_1368x1276_202111071151202


  1. #!/usr/bin/env python3
  2. # coding: utf-8
  3. from PIL import Image, ImageDraw, ImageFont
  4. import os
  5. setFontFile = "/System/Library/Fonts/STHeiti Light.ttc"
  6. theFileName = os.path.basename(setFontFile)
  7. numIndex = int(0)
  8. setFontFile = str(setFontFile)
  9. theDelimiters = ','
  10. listJoinName = ''
  11. objFont = ImageFont.truetype(setFontFile, 32)
  12. theName = objFont.font_variant(index=numIndex).getname()
  13. while True:
  14.   try:
  15.    objFont = ImageFont.truetype(setFontFile, 32)
  16.    theName = objFont.font_variant(index=numIndex).getname()
  17.    theName0 = str(theName[0])
  18.    theName1 = str(theName[1])
  19.    theJoinName = ''.join(theName0 + ' ' + theName1)
  20.    listJoinName = listJoinName + theDelimiters + theJoinName
  21.    numIndex = numIndex + 1
  22.   except:
  23.    break
  24. pass
  25. listJoinName = listJoinName[1:]
  26. listJoinName = listJoinName.split(",")
  27. numIndex = str(numIndex)
  28. print ("このフォントに内包されている書体数:" + numIndex)
  29. numIndex = int(numIndex)
  30. for i in range(numIndex):
  31.      theTyepName = listJoinName[i]
  32.      theIndexNo = str(i)
  33.      print ("INDEX番号:" + theIndexNo)
  34.      print ("このフォントに内包されている書体名:" + theTyepName)

|

« [Python]TTC(TrueType フォントコレクション)フォントの収録書体数(INDEX)を取得する(その1) | トップページ | [OS12]文字ビューアを出す(文字パレット) »

Python」カテゴリの記事