如何使用ob_get_contents获取图像内容

时间:2017-03-14 15:20:45

标签: php ob-get-contents

我想从imagePng()获取文件的内容,在我的代码中,它返回空。

只是为了测试,如果我删除ob_end_clean()并且它正在打印内容但我不知道如何获取它。我想我的代码中遗漏了一些内容。

public function create_thumb($content_file, $percent=5){

        $result = array(
            'success'   => true,
            );

        list($width, $height)  = @getimagesize($content_file);
        $n_width  = $width * $percent;
        $n_height = $height * $percent;
        $image_src = @imageCreateFromPng($content_file);

        if($image_src){

            ob_start();

            $image = @imagecreatetruecolor($n_width, $n_height);
            @imagecopyresampled($image, $image_src, 0, 0, 0, 0, $n_width, $n_height, $width, $height);
            @imagepng($image, null, 100);
            $result['thumb'] = ob_get_contents();
            ob_end_clean();
        }else{
            $result['success'] = false;
            $result['image_src'] = $image_src;
        }


        return $result;
    }

我的回归:

{
      "success": true,
      "thumb": {
        "success": true,
        "thumb": ""
      }
 }

解决方案

我的代码上缺少base64_encode(ob_get_contents())

ob_start();
@imagepng($image, null, 100);
$result['thumb']  = 'data:image/png;base64,' . base64_encode(ob_get_contents())
ob_end_clean();

0 个答案:

没有答案