PHP将文件中生成的图像转换为base64

jer*_*515 1 php base64

我有一个图像,我通过组合基于数据库数据的图像创建,并想知道如何将其转换为基础64.我试过这个,但返回的字符无法解码为图像:

$encode ="data:image/png"; 
imagepng($image);
echo (base64_encode($encode));
Run Code Online (Sandbox Code Playgroud)

我在其他人中看到了这一点,但这需要一条我没有的道路.谢谢你的帮助.

Nie*_*sol 5

以下将允许您获取图像数据,而无需创建临时文件(当有太多用户在线时,我已经做过临时文件的噩梦......)

ob_start(function($c) {return "data:image/png;base64,".base64_encode($c);});
imagepng($image);
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

这将输出类似于:

data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQAgMAAABinRfyAAAAAXNSR0IArs4c6QAAAAxQTFRFAGVygICA/8wz/+aZTn6FEAAAAAF0Uk5TAEDm2GYAAAABYktHRACIBR1IAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH2wkZEwoSgxq4wwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAAAS0lEQVQI1w3EMQ3AMAwEwMdTEmWRSF68h0RQBIKl5vkUirdGX99wuKUPKkjJkfM4jueE+ivo7VW6wDCCq1VtEdtiIMY2BGlgwUU+P38ZK+RwskeQAAAAAElFTkSuQmCC
Run Code Online (Sandbox Code Playgroud)

哪个适合在里面使用<img src="..." />.

编辑PHP <5.3没有匿名函数:

// Define the function first
function ob_base64_encode($c) {
  return "data:image/png;base64,".base64_encode($c);
}
// And pass its name as a string
ob_start('ob_base64_encode');
imagepng($image);
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)