PHP: Как преобразовать изображение из URL в Base64?

Я хочу преобразовать изображение с его 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