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("画像サイズの取得に失敗しました。")
注意点:
- この関数を使用する前に、requestsとPillowライブラリをインストールする必要があります。 以下のコマンドでインストールできます:
pip install requests Pillow
- この関数は、ネットワークアクセスを行うため、インターネット接続が必要です。
- エラー処理を含んでいるため、 画像のダウンロードや処理に失敗した場合でもプログラムはクラッシュせず、Noneを返します。
- 大きな画像や多数の画像を処理する場合は、メモリ使用量と処理時間に注意してください。
ローカル画像のサイズを取得する場合
ローカル画像のサイズを調べる場合は、もっとシンプルなコードになります。
from PIL import Image # ローカル画像の場合 img = Image.open("example.jpg") width, height = img.size print(f"幅: {width}, 高さ: {height}")