7

我有一个图像变量,

$im = imagecreatetruecolor(400, 300);

无论如何,是否可以在不将其保存到文件的情况下以 jpeg 格式获取该图像的二进制字符串?谢谢!

4

3 回答 3

12

是的,这是可能的(即使没有输出缓冲)。它似乎没有记录,但您可以传递流资源而不是文件名。

<?php

$stream = fopen("php://memory", "w+");
$i = imagecreatetruecolor(200, 200);
imagepng($i, $stream);
rewind($stream);
$png = stream_get_contents($stream);
于 2018-03-16T15:58:14.230 回答
9
ob_start();
imagejpeg($im);
$imageString = ob_get_clean();
于 2012-07-12T06:25:47.850 回答
2

作为一个函数并添加imagedestroy().

function imagejpeg_tostring($im,$quality=75) {
      ob_start(); //Stdout --> buffer
      imagejpeg($im,NULL,$quality); // output ...
      $imgString = ob_get_contents(); //store stdout in $imgString
      ob_end_clean(); //clear buffer
      imagedestroy($im); //destroy img
      return $imgString;
}
于 2016-12-07T22:30:51.200 回答