Я хочу преобразовать изображение с его URL на base64.
Вы хотите создать URL-адрес данных? Затем вам нужен MIME-тип и другая дополнительная информация (см. Википедию ). Если это не так, это будет простое базовое представление изображения:
$b64image = base64_encode(file_get_contents('path/to/image.png'));
Соответствующие документы: base64_encode()
-функция , file_get_contents()
-функция .
Попробуй это:-
Пример 1:
<?php function base64_encode_image ($filename=string,$filetype=string) { if ($filename) { $imgbinary = fread(fopen($filename, "r"), filesize($filename)); return 'data:image/' . $filetype . ';base64,' . base64_encode($imgbinary); } } ?> used as so <style type="text/css"> .logo { background: url("<?php echo base64_encode_image ('img/logo.png','png'); ?>") no-repeat right 5px; } </style> or <img src="<?php echo base64_encode_image ('img/logo.png','png'); ?>"/>
Пример два:
$path= 'myfolder/myimage.png'; $type = pathinfo($path, PATHINFO_EXTENSION); $data = file_get_contents($path); $base64 = 'data:image/' . $type . ';base64,' . base64_encode($data);
Я дошел до этого вопроса, ища аналогичное решение, на самом деле, я понял, что это был оригинальный вопрос.
Я хотел сделать то же самое, но файл находился на удаленном сервере, так что это то, что я сделал:
$url = 'http://yoursite.com/image.jpg'; $image = file_get_contents($url); if ($image !== false){ return 'data:image/jpg;base64,'.base64_encode($image); }
Таким образом, этот код является функцией, возвращающей строку, и вы можете вывести возвращаемое значение внутри параметра src тега img в html. Я использую smarty как мою библиотеку шаблонов. Это может быть так:
<img src="<string_returned_by_function>">
Обратите внимание на явный вызов:
if ($image !== false)
Это необходимо, потому что file_get_contents может возвращать 0 и в некоторых случаях забрасываться в false, даже если выборка файла прошла успешно. На самом деле в этом случае это не должно происходить, но это хорошая практика при извлечении содержимого файла.
Я не уверен, но проверьте этот пример http://www.php.net/manual/es/function.base64-encode.php#99842
С уважением!
base64_encode