2013-04-02 51 views
14

这里是我的代码:如何保存从imagecreatefromstring()函数创建的图像?

$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.'; 
} 

我想保存图像产生这样一个目录。我该怎么做呢?

+0

碰巧保存图像的例子在[关于jpeg的文档](http://www.php.net/manual/en/function.imagejpeg.php)中,但是png的用法非常相似。 – Antony

回答

18

这是imagepng正确的语法:

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

按照PHP manual

布尔imagepng(资源$图像[,字符串$文件名[摘要$质量[, INT $ filters]]])

filename - 保存文件的路径。

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

+0

谢谢@Pablo Martinez ... –

4

下面的代码会有所帮助:

$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.'; 
} 

请建议,如果这样做的一些其他更好的办法!

相关问题