国旗の画像をダウンロードしてリサイズする

国連加盟国の一覧 の続きです。

JSONファイルに 国旗の画像の情報(url width height) が入っている。

この情報から 国旗の画像をダウンロードしてリサイズする

ダウンロードには PythonRequests を使用する

import requests

data = requests.get(url).content

url (https://upload.wikimedia.org/wikipedia/en/thumb/9/9e/Flag_of_Japan.svg/800px-Flag_of_Japan.svg.png) から

ファイル名(800px-Flag_of_Japan.svg.png) を抽出する。

from urllib.parse import urlparse
import os

parsed = urlparse(url)
path = parsed.path
filename = os.path.basename(path)

リサイズには PythonPillow を使用する

from PIL import Image

img = Image.open(filename)
height_resize = int( (WIDTH * height ) / width )
img_resize = img.resize((WIDTH, height_resize))
img_resize.save(filename_resize)

ファイル名(800px-Flag_of_Japan.svg.png)から

リサイズ後のファイル名(100px-Flag_of_Japan.png) を生成する

import re

matched = re.findall('\d+px-(.*).svg.png', filename)
name = matched[0]
FORMAT_FILENAME = '{width}px-{match}.png'
filename_resize = FORMAT_FILENAME.format(width=WIDTH, match=name)

プログラム全体はこちら https://github.com/ohwada/World_Countries/blob/main/un_member_states_flag/python/resize_flag.py