LoginSignup
0
1

More than 3 years have passed since last update.

画像を真っ二つにするスクリプトを書いた

Last updated at Posted at 2020-08-11

はじめに

AtCoderでPythonの勉強をしていました。
少しずつ書き方を覚えたので、そろそろ実用的なスクリプトを書いてみたいなと思い、自分が必要としているものを作ってみることにしました。

環境

OS:Ubuntu 20.04LTS
言語:Python3.8.2
Pillowのバージョンは7.0.0です。

目的・用途

横長の画像を縦半分に分割したいときに使う。
スマホで見開き資料を読むときなんかに活用。

コード

imagehalf
import glob
from PIL import Image
import os

files = glob.iglob('/home/user/images/*.jpg')

for f in files:
    img = Image.open(f)
    x, y = img.size

    box = img.crop((0, 0, x//2, y))
    title, ext = os.path.splitext(f)
    box.save(title + 'half1' + ext, quality=75)

    box = img.crop((x//2+1, 0, x, y))
    title, ext = os.path.splitext(f)
    box.save(title + 'half2' + ext, quality=75)

    os.remove(f)

コードの説明

ホームディレクトリ上に『images』というディレクトリを作成し、そこを作業用とします。
imagesに格納されている、拡張子が.jpgのファイルを全て検出します。
画像の左上を起点とし、x軸方向の中間座標を取得し、画像を半分に分割します。
半分に分割した画像の左側を、『元のファイル名+half1+拡張子』として保存します。
半分に分割した画像の右側を、『元のファイル名+half2+拡張子』として保存します。
元の画像を削除します。

※注意
スクリプトファイルは、作業用ディレクトリと同階層かつ、ホームディレクトリ上に置くと動作すると思います。
分割する元となった画像ファイルは、ゴミ箱ではなく削除になります。復活できません。

おわりに

初めて作成したスクリプトなので、書き方やそもそもの環境設定がおかしいかもしれません。
もっとスマートな書き方があれば、ご指摘をお願いいたします。
なお本スクリプトによる責任はご容赦ください。

0
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1