【Django】ワードクラウドアプリを作成(出力用フォントをGoogle Fontsからダウンロード)[Python]

  • URLをコピーしました!
目次

Django

前回、ワードクラウドアプリでfontsタグとレイアウトの修正を行いました。

今回と次回ですっかり忘れていたワードクラウド出力用のフォントを設定していきます。

まずはワードクラウドの出力用フォントを設定している「views.py」の「wordcloudmake関数」を見てみましょう。

def wordcloudmake(text, bgcolor, textcolor, height, width, transparence, min_word, mask_file, mask_line_width, mask_line_color):

    tk = Tokenizer(wakati=True)
    tokens = tk.tokenize(text)

    words = ' '.join(list(tokens))

    if transparence == 'on':
        bgcolor = None
        mode = 'RGBA'
    elif transparence == 'off':
        bgcolor = bgcolor
        mode = 'RGB'

    if mask_file == None:
        wordcloud = WordCloud(width=width, height=height, mode=mode, background_color=bgcolor, colormap=textcolor, min_word_length=min_word, font_path=r"/System/Library/Fonts/Hiragino Sans GB.ttc").generate(words)
    else:
        img = Image.open(mask_file)
        mask_img = np.array(img)
        wordcloud = WordCloud(width=width, height=height, mask=mask_img, contour_width=mask_line_width, contour_color=mask_line_color, mode=mode, background_color=bgcolor, colormap=textcolor, min_word_length=min_word, font_path=r"/System/Library/Fonts/Hiragino Sans GB.ttc").generate(words)

    wordcloud.to_file('./wordcloudapp/static/wordcloudapp/wordcloud.png')

この中でワードクラウドの画像を作成しているのはこの部分です。

wordcloud = WordCloud(width=width, height=height, mode=mode, background_color=bgcolor, colormap=textcolor, min_word_length=min_word, font_path=r"/System/Library/Fonts/Hiragino Sans GB.ttc").generate(words)

ここでフォントを設定しているfont_pathが「r”/System/Library/Fonts/Hiragino Sans GB.ttc”」となっています。

頭の「r」は「””(ダブルクオーテーション)」の中身はパスと認識させているだけです。

つまりこの状態では自分のパソコン上の「System」フォルダ内のフォントを指定している状態です。

このままではサーバーにアップロードしてもワードクラウドの文字は表示されません。

それではシステム上のフォントをサーバーにアップロードして使えばいいのでしょうか?

自分のパソコン上で表示されているフォントにも著作権や使用ライセンスが存在しますが、そのフォントがどのようなライセンスになっているのか、なかなか調べるのは困難です。

ということで最初からどのように使用していいのかライセンスがはっきりとしているフォントを使用する方向で進めていきましょう。

Google Fonts

そこで出てくるのが「Google Fonts」というウェブサイトです。

このサイトでは無料でかなり自由に使用できるフォントが提供されています。

ほとんどのフォントがSILオープンフォントライセンス(一部Apacheライセンス)という自由度の高いライセンスで提供されているため、今回のワードクラウドアプリのようなアプリでも使用することができます。

SILライセンスは基本的に自由で、自分のデザイン(印刷物やロゴ、グッズなど)やプログラムに使用することができ、またプログラムの場合は同梱することもできます。

しかし全く著作権等がないわけではなく、ルールを守った使用が求められます。

そのルールとはざっくりといってこんな感じです(間違っているかもしれないので、ご自分でも確認をお願いします)。

  • フォントを配布する(同梱含む)場合は著作権情報とライセンス情報を含める
  • フォント単体では販売してはいけない
  • 予約フォント名が設定されているフォントでフォントを改変する場合、予約フォント名を含めない
  • 改変したフォントはSILライセンスで配布する

ちなみに今回のワードクラウドアプリの場合、フォント自体を配布するわけではないので、著作権情報やライセンス情報を表示する必要もないことになります。

また改変したり、フォントを販売したりする予定もないので、他の項目は問題ないようです。

ということでダウンロードして、使わせていただきましょう。

Google Fontsからフォントのダウンロード

今回使用したいフォントは日本語用のフォントです。

ということで日本語用フォントのダウンロードを解説していきます。

まずはGoogle Fontsにアクセスします。

今回欲しいのは日本語のフォントなので、「Language」のプルダウンメニューを開いて、「Japanese」を選択します。

すると日本語のフォントがリストアップされますので、サンプルを見て使いたいフォントをクリックします。

今回は「Noto Sans JP」を試してみましょう。

「Download Family」をクリック。

ちなみに「Select styles」の下の方にはフォントセットに含まれるフォントのサンプルが表示されています。

Noto Sans JPの場合は「Noto_Sans_JP.zip」というファイルがダウンロードされます。

その中身はこんな感じです。

拡張子が「.otf」とか「.ttf」のものがフォントのファイルです。

また「OFL.txt」がライセンスのファイルです。

配布や同梱する場合はこのライセンスのファイルを削除しないようにしましょう。

ライセンスの簡易表示に関してはGoogle Fonts内でも確認できます。

先ほどのフォントのページで「License」をクリックします。

このフォントのライセンスが簡易な形で表示されます。

あくまでも簡易な形なので、必要な場合はちゃんと弁護士に相談して、全文を確認するのが良いようです。

これで自由に使えるフォントのダウンロードができました。

次回はこのフォントを使って、ワードクラウドを表示できるようプログラムの修正を行っていきましょう。

ではでは今回はこんな感じで。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

目次