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}")