退屈なことはPythonにやらせよう
楽天ブックス Yahoo!
原著:Automate the Boring Stuff with Python:
Practical Programming for Total Beginners
開発環境
- macOS Catalina - Apple (OS)
- Emacs (Text Editor)
- Windows 10 Pro (OS)
- Visual Studio Code (Text Editor)
- Python 3.8 (プログラミング言語)
退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング (Al Sweigart(著)、相川 愛三(翻訳)、オライリージャパン)の第Ⅱ部(処理の自動化)、17章(画像の操作)、17.7(演習プロジェクト)、17.7.1(章プロジェクトの改造と修正)の解答を求めてみる。
コード
#!/usr/bin/env python3
import os
from PIL import Image
SQUARE_FIT_SIZE = 300
LOGO_FILENAME = 'catlogo.png'
logo_im = Image.open(LOGO_FILENAME)
logo_width, logh_height = logo_im.size
os.makedirs('withlogo', exist_ok=True)
for filename in os.listdir('.'):
ext = filename[-4:].lower()
filename = filename.lower()
if (ext not in ['.png', '.jpg', '.gif', '.bmp']) or \
filename == LOGO_FILENAME:
continue
im = Image.open(filename)
im.thumbnail((SQUARE_FIT_SIZE, SQUARE_FIT_SIZE))
width, height = im.size
if width < 2 * logo_width or height < 2 * logh_height:
continue
print(f'ロゴを追加中 {filename}…')
im.paste(logo_im, (width-logo_width, height-logo_width), logo_im)
im.save(os.path.join('withlogo', filename))
入出力結果(Zsh、PowerShell、Terminal、Jupyter(IPython))
% ls *.{png,jpg,gif,bmp}
catlogo.png* small.png* zophie.gif* zophie.png*
flower.png* zohpie.bmp* zophie.jpg*
% open *.{png,jpg,gif,bmp}
% ./resizeandaddlogo.py
ロゴを追加中 zophie.gif…
ロゴを追加中 zohpie.bmp…
ロゴを追加中 zophie.png…
ロゴを追加中 zophie.jpg…
% ls withlogo
./ zohpie.bmp zophie.jpg
../ zophie.gif zophie.png
% open withlogo/*
%
0 コメント:
コメントを投稿