在PHP中获取图像对象的内容

时间:2011-12-16 12:55:13

标签: php

我正在尝试获取由PHP中的imagejpeg()创建的原始数据。我需要缓存内容,因为生成图像的函数有点慢。我知道我可以提供第二个参数,但这不是我想要的。

THX

3 个答案:

答案 0 :(得分:4)

您可以使用Output Control Functions捕获通常由函数打印的原始数据。

在下面的示例中,我们会将imagejpeg最初打印的数据存储在$image_data中。

ob_start();

  imagejpeg ($img);

  $image_data = ob_get_contents();

ob_end_clean();

如果您使用的是比5.3更新的PHP版本,您可以将此包装函数添加到库中,它将进行回调并返回通常打印出来的数据。

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

...

$image_data = get_output (
  function () {imagejpeg ($img);}
);

答案 1 :(得分: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

答案 2 :(得分:0)

我在Google上的简单命中就给了我这个:

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