19

这是我的代码:

$data = 'iVBORw0KGgoAAAANSUhEUgAAABwAAAASCAMAAAB/2U7WAAAABl'
       . 'BMVEUAAAD///+l2Z/dAAAASUlEQVR4XqWQUQoAIAxC2/0vXZDr'
       . 'EX4IJTRkb7lobNUStXsB0jIXIAMSsQnWlsV+wULF4Avk9fLq2r'
       . '8a5HSE35Q3eO2XP1A1wQkZSgETvDtKdQAAAABJRU5ErkJggg==';
$data = base64_decode($data);

$im = imagecreatefromstring($data);
if ($im !== false) {
    header('Content-Type: image/png');
    imagepng($im);
    imagedestroy($im);

}
else {
    echo 'An error occurred.';
}

我想以这种方式生成的图像保存到一个目录中。我该怎么做呢?

4

2 回答 2

26

这是正确的语法imagepng

imagepng($im, "/path/where/you/want/save/the/png.png");

根据PHP 手册

bool imagepng ( 资源 $image [, string $filename [, int $quality [, int $filters ]]] )

文件名 - 保存文件的路径。

如果不设置或为NULL,将直接输出原始图像流。

于 2013-04-02T09:30:40.707 回答
5

下面的代码会有所帮助:

$data = 'code in bytes'; // replace with an image string in bytes
$data = base64_decode($data); // decode an image
$im = imagecreatefromstring($data); // php function to create image from string
// condition check if valid conversion
if ($im !== false) 
{
    // saves an image to specific location
    $resp = imagepng($im, $_SERVER['DOCUMENT_ROOT'].'folder_location/'.date('ymdhis').'.png');
    // frees image from memory
    imagedestroy($im);
}
else 
{
    // show if any error in bytes data for image
    echo 'An error occurred.'; 
}

请建议是否有其他更好的方法!

于 2013-09-09T13:08:53.417 回答