#php #base64
#php #base64
Вопрос:
Возможно ли объединить два изображения в одно и использовать их как base64?
Я предполагаю, что нет, поскольку нет подлинного реального изображения, но подумал, что я бы спросил, если я что-то недопонимаю.
Например, у меня есть следующее — img.php файл:
$dest = imagecreatefrompng('myimg.png');
$src = imagecreatefrompng('myimg1.png');
imagealphablending($dest, false);
imagesavealpha($dest, true);
imagecopymerge($dest, $src, 10, 9, 0, 0, 181, 180, 100);
header('Content-Type: image/png');
imagepng($dest);
imagedestroy($dest);
imagedestroy($src);
Возможно ли вообще тогда
base64_encode(file_get_contents(img.php)))
Очевидно, я попытался, и это не сработало, поэтому мне любопытно, просто ли я делаю это неправильно, или это просто невозможно.
ВОПРОС ОБ ОБНОВЛЕНИИ
Так что, по-видимому, это должно работать, но, похоже, у меня это не работает.
Вот самый простой код:
$abs_path = '/home/user/web_dir/path/to/img.php';
$rel_path = '/path/to/img.php';
$data = file_get_contents($abs_path);
echo $data; // should return crazy characters on the screen
echo '<br><img src="'.$rel_path.'">'; // should return the image as an image
Изображение возвращается отлично, $data ничего не возвращает. Оба пути верны. Ошибки не возвращаются.
Если я запускаю
$test = base64_encode($data);
echo $test;
созданный base64 не возвращает действительное изображение. просто пустой контейнер.
Комментарии:
1. Что вы подразумеваете под «это не работает»? Это, конечно , возможно, почему бы и нет? Такое «объединенное» изображение — это не что иное, как изображение.
2. @arkascha Я обновил вопрос.
3. Определение «слияния» здесь не так ясно… не могли бы вы, пожалуйста, объяснить, что именно вы пытаетесь сделать с двумя изображениями?
4. @Dekel эм …. хорошо??? определение merge, которое я использую, совпадает с тем, которое используется imagecopymerge() из php. То, что я пытаюсь сделать с изображениями, довольно просто … imagealphablending(), imagesavealpha(), imagecopymerge(), вывод, кодирование как база 64, echo.
5. Ваше использование
file_get_contents
неверно. в настоящее время вы делаетеfile_get_contents('/home/user/web_dir/path/to/img.php');
следующее (что дает содержимое вашего php-кода, а не возвращаемые данные запущенного phpimg.php
)