画像を取得する多くの場合はファイルから読み込むかURLから読み込むかが殆どだったため、
画像をバイナリで取得してきた場合にどう扱うのか迷ってしまった。
バイナリ→リソース
画像がバイナリでPHP上に与えられるケースはDBに画像が保存されている場合などが考えられるでしょうか?
画像のバイナリをリソースに変換するにはimagecreatefromstring
という関数を使えばいいようです。
$image_resource = imagecreatefromstring($image_binary);
簡単ですね。
リソース→バイナリ
リソースとなった画像はPHPで切ったり貼ったり出来ますが、その編集結果をまたバイナリに戻したいというケースもあるでしょう。
image操作関数は多くありますが、画像リソースをブラウザ・ファイルに出力する関数はあっても、バイナリデータにする関数は見当たりません。
なので、バッファに一旦画像バイナリを出力して変数に格納する必要があります。
ob_start();
imagepng($image_resource, null, 9); // png画像をminify
$image_binary = ob_get_clean();
読み込んだ画像リソースを整形して保存するときなどに覚えておくと便利です。