[PHP] getimagesizefromstringという関数が便利な件

getimagesizefromstring という関数が、PHP5.4から追加されていたので紹介します。
http://php.net/manual/ja/function.getimagesizefromstring.php

getimagesizeにはメモリ上の画像を渡せない

PHPにはもともとgetimagesizeという関数があって、画像ファイルのサイズやメタ情報をお手軽に取得することができました。
list($width, $height, $type, $attr) = getimagesize("/path/to/image.jpg");
ただこの関数には1個残念なところがあって、変数に格納したメモリ上の画像(バイナリ文字列)を引数として渡すことができないのです。
私はよくAmazonS3などから取得したメモリ上の画像を処理することがあるのですが、getimagesizeにそのまま渡せないので残念だなーと思ってました。
その場合は仕方なくImagickを使ったり一度ローカルに保存したりしてました。

getimagesizefromstringならオンメモリで処理できる!

$file = 'http:///example.com/image.jpeg';
$data       = file_get_contents($file);
$size_info = getimagesizefromstring($data);
こんな感じで使えます。
ネットワーク越しに取得した画像を処理したいときに大変便利ですね。
カテゴリ: