前回画像を加工するまでは完了しましたが、このままではTwitterAPIにリクエスト出来ませんので、イメージストリームを文字列に変換するか、あるいは一旦ファイルに出力してしまう必要があります。当初は一旦ファイル化していましたが、サーバー容量の無駄遣いになってしまうので、文字列に変換する方法に切り替えました。
//$effected_image:GD画像ストリーム //$ei に文字列化されて取得 ob_start(); imagepng($effected_image); $ei = ob_get_contents(); ob_end_clean();
バッファリングを有効にし、一旦imagepngなどで画像を出力した後に変数に格納すると、文字列として取得できます。ob_startからob_end_cleanまでの間、通常ブラウザに出力される内容はバッファリングされるので、任意のタイミングでob_get_contentsを実行すると、出力内容を変数に取れるということです。
文字列になると、BASE64エンコードしてHTTP送信したり出来るようになるので、TwitterAPIでの利用に限らず、サーバー間の画像のやり取り等にもかなり応用出来ると思います。
ちなみに、ファイルに保存したい場合は、上記のバッファリングなどせず、適当なディレクトリパスを指定してimagepngすれば良いです。
コメント