dak ブログ

python、rubyなどのプログラミング、MySQL、サーバーの設定などの備忘録。レゴの写真も。

python で imghdr による画像形式の判定

2024-09-22 20:19:12 | python

python で imghdr による画像形式の判定する方法のメモ。


ここでは画像ファイル名で画像を指定した場合と、画像データを指定した場合の判定方法を検証します。

import sys
import io
import imghdr


def read_image_file(image_file):
    image = None
    with open(image_file, 'rb') as inst:
        image = inst.read()

    return image


def main():
    image_file = sys.argv[1]

    # 画像ファイルで判定
    res = imghdr.what(image_file)
    print(f'image file: {res}')

    # 画像バイトデータで判定
    image = read_image_file(image_file)
    res = imghdr.what(io.BytesIO(image))
    print(f'image data: {res}')

    return 0


if __name__ == '__main__':
    res = main()
    exit(res)

jpg ファイル、png ファイルの画像判定結果では、それぞれ正しく判定しています。

$ python test_imghdr.py jpg1.jpg
image file: jpeg
image data: jpeg

$ python test_imghdr.py png1.png
image file: png
image data: png

jpg ファイルの拡張子を png に変更しても、正しく判定することができます。

$ python test_imghdr1.py jpg1.png

image file: jpeg
image data: jpeg

この記事についてブログを書く
« apache の proxy によるアプ... | トップ | python でアップロードされた... »

python」カテゴリの最新記事