[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 = '/path/to/test.png';
$data       = file_get_contents($file);
$size_info = getimagesizefromstring($data);
こんな感じで使えます。
ネットワーク越しに取得した画像を処理したいときに大変便利ですね。
購読する

最近の人気記事

人気記事

このブログ記事について

ひとつ前の記事は「[PHP]Monologで標準出力や標準エラー出力にログを吐く」です。

過去に書かれたものは過去記事一覧で見られます。