2011-12-16 23 views
2

PHPでimagejpeg()によって作成された生データを取得しようとしています。私は画像を生成する関数が一種遅いので、コンテンツをキャッシュする必要があります。私は2番目のパラメータを提供することができますが、それは私が望むものではありません。PHPで画像オブジェクトのコンテンツを取得

Thxを

答えて

2

次のように出力バッファを使用してみてください - >

ob_start(); // start a new output buffer 
imagejpeg($newimage, NULL, 100); // generate the image 
$ImageData = ob_get_contents(); // grab the buffer contents 
ob_end_clean; // stop this output buffer 
0

私はGoogleでシンプルなヒットが私にこの与えた:

ob_start(); 
ImageJPEG($img); 
$data = ob_get_contents(); 
ob_end_clean(); 
4

あなたが生をキャプチャするためにOutput Control Functionsを使用することができますが関数によって通常は印刷されるデータ。

imagejpegで最初に印刷されたデータは、$image_dataに保存されます。

ob_start(); 

    imagejpeg ($img); 

    $image_data = ob_get_contents(); 

ob_end_clean(); 
  • ob_start
  • ob_get_contentsは、現在のバッファのデータを取得します出力のバッファリングを開始します
  • ob_end_clean `出力バッファリングをオフにして、すべてが正常な

に戻るようになります5.3より新しいPHPバージョンを使用している場合は、tラッパー関数をライブラリに追加すると、コールバックが発生し、通常は出力されるデータが返されます。

function get_output ($callback) { 
    ;  ob_start (); 
    ;  $callback (); 
    return ob_get_clean(); // get data and turn off buffering 
} 

... 

$image_data = get_output (
    function() {imagejpeg ($img);} 
); 
関連する問題