Я хочу преобразовать изображение из его url в base64.
PHP: Как преобразовать изображение из URL в Base64?
Ответ 1
Вы хотите создать URL-адрес данных? Затем вам нужен MIME-тип и другая дополнительная информация (см. Wikipedia). Если это не так, это будет простое представление base64 изображения:
$b64image = base64_encode(file_get_contents('path/to/image.png'));
Соответствующие документы: base64_encode()
-функция, file_get_contents()
- функция.
Ответ 2
Попробуйте следующее: -
Пример 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);
Ответ 3
Я дошел до этого вопроса, ища аналогичное решение, на самом деле, я понял, что это был оригинальный вопрос.
Я хотел сделать то же самое, но файл был на удаленном сервере, так что это то, что я сделал:
$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, даже если выборка файла прошла успешно. На самом деле в этом случае это не должно происходить, но это хорошая практика при извлечении содержимого файла.
Ответ 4
Я не уверен, но проверьте этот пример http://www.php.net/manual/es/function.base64-encode.php#99842
Привет!