画像ファイルの内容を見て種類(jpeg,gif…)を判断する方法
拡張子がない画像ファイル、拡張子があてにならない画像ファイルなどでも、画像の形式を判断する方法。
たとえば、こんなときです。
- 拡張子は.gifなのに中身はjpeg画像だった
- 拡張子がないけど何の画像?
そこで getimagesize() 。
get image size という名前なので、画像のサイズを取得するだけかと思って、GD関連のマニュアルを確認するまで、気づきませんでした。
こんな風にすると
$data = getimagesize('/path/to/image.jpg');
こんな配列が返ってきます
array(7) { [0]=> int(300) [1]=> int(300) [2]=> int(2) [3]=> string(24) "width="300" height="300"" ["bits"]=> int(8) ["channels"]=> int(3) ["mime"]=> string(10) "image/jpeg" }
幅、高さにつづいて、数値で2と出ているところが画像の形式を現しています。定数 IMAGETYPE_XXX と比較して、JPEGなのかGIFなのかPNGなのか……を判断できます。
コメント