我想从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();