Python: Web上の画像のサイズを取得する方法

Web上にある画像のサイズ(幅と高さ)を調べたかったので、 関数を作成しました。

以下のPython関数は指定されたWeb上の画像URLからその画像のサイズ(幅と高さ)を取得し、 タプルとしてwidthとheightを返します。

この関数を実装するには、`requests`ライブラリと `PIL`(Python Imaging Library)の`Image`モジュールを使用します。

Web上の画像のサイズを取得する関数

import requests
from PIL import Image
from io import BytesIO

# Web上の画像サイズ(幅と高さ)を取得する
def get_image_size(url):
    try:
        # 画像をダウンロード
        response = requests.get(url)
        response.raise_for_status()  # エラーがあれば例外を発生させる

        # BytesIOオブジェクトを作成し、画像を開く
        img = Image.open(BytesIO(response.content))

        # 画像のサイズを取得
        width, height = img.size

        return (width, height)

    except requests.exceptions.RequestException as e:
        print(f"画像のダウンロードエラー: {e}")
        return None
    except IOError as e:
        print(f"画像の処理エラー: {e}")
        return None

この関数の使用方法は以下の通りです:

# 使用例
url = "https://example.com/image.jpg"
size = get_image_size(url)

if size:
    width, height = size
    print(f"画像サイズ: 幅 {width}px, 高さ {height}px")
else:
    print("画像サイズの取得に失敗しました。")

注意点:

  1. この関数を使用する前に、requestsとPillowライブラリをインストールする必要があります。 以下のコマンドでインストールできます:
pip install requests Pillow
  1. この関数は、ネットワークアクセスを行うため、インターネット接続が必要です。
  2. エラー処理を含んでいるため、 画像のダウンロードや処理に失敗した場合でもプログラムはクラッシュせず、Noneを返します。
  3. 大きな画像や多数の画像を処理する場合は、メモリ使用量と処理時間に注意してください。

ローカル画像のサイズを取得する場合

ローカル画像のサイズを調べる場合は、もっとシンプルなコードになります。

from PIL import Image

# ローカル画像の場合
img = Image.open("example.jpg")
width, height = img.size
print(f"幅: {width}, 高さ: {height}")
Python