Как сохранить изображение, созданное функцией 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.';
}
Я хотел бы сохранить изображение, сгенерированное таким образом, в каталог. Как это сделать?
Ответы
Ответ 1
Это правильный синтаксис для imagepng
:
imagepng($im, "/path/where/you/want/save/the/png.png");
Согласно руководству PHP:
bool imagepng (resource $image [, string $filename [, int $quality [, int $filters]]])
filename - путь для сохранения файла.
Если не установлено или NULL, поток необработанного изображения будет выводиться напрямую.
Ответ 2
Ниже будет полезен следующий код:
$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.';
}
Пожалуйста, предложите, если какой-нибудь другой лучший способ сделать!