2013-04-02 39 views
14

Đây là mã của tôi:Cách lưu hình ảnh được tạo từ hàm 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.'; 
} 

Tôi muốn lưu hình ảnh được tạo ra theo cách này vào một thư mục. Làm thế nào để tôi làm điều này?

+0

Điều đó xảy ra là ví dụ để lưu hình ảnh nằm trong [tài liệu về jpeg] (http://www.php.net/manual/en/function.imagejpeg.php), nhưng việc sử dụng rất giống với png . – Antony

Trả lời

18

Đây là cú pháp chính xác cho imagepng:

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

Theo PHP manual:

bool imagepng (nguồn $ image [, string $ filename [, int $ chất lượng [, int $ filters]]])

tên tệp - Đường dẫn để lưu tệp vào.

Nếu không được đặt hoặc NULL, luồng hình ảnh thô sẽ được xuất trực tiếp.

+0

Cảm ơn @Pablo Martinez ... –

4

Dưới mã sẽ rất hữu ích:

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

Xin gợi ý nếu một số cách khác tốt hơn để làm!

Các vấn đề liên quan