gpt4 book ai didi

php - Base64 编码 PHP 生成的图像,而不将图像写入磁盘

转载 作者:行者123 更新时间:2023-12-02 04:13:45 26 4
gpt4 key购买 nike

我正在 PHP 中生成图像以在用户头像中使用。

我首先对用户名进行哈希处理,然后对哈希的各个子字符串进行 hexdec() 转换,以构建一组 RGB 颜色。

//create image
$avatarImage = imagecreate(250, 250);

// first call to imagecolorallocate sets the background colour
$background = imagecolorallocate($avatarImage, hexdec(substr($hash, 0, 2)), hexdec(substr($hash, 2, 2)), hexdec(substr($hash, 4, 2)));

//write the image to a file
$imageFile = 'image.png';
imagepng($avatarImage, $imageFile);

//load file contents and base64 encode
$imageData = base64_encode(file_get_contents($imageFile));

//build $src dataURI.
$src = 'data: ' . mime_content_type($imageFile) . ';base64,' . $imageData;

理想情况下,我不会使用中间步骤,并且会跳过将图像写入磁盘,尽管我不确定如何最好地实现这一点?

我尝试将 $avatarImage 直接传递给 base64_encode() 但需要一个字符串,因此不起作用。

有什么想法吗?

最佳答案

您可以将 imagepng 添加到变量:

//create image
$avatarImage = imagecreate(250, 250);

//whatever image manipulations you do

//write the image to a variable
ob_start();
imagepng($avatarImage);
$imagePng = ob_get_contents();
ob_end_clean();

//base64 encode
$imageData = base64_encode($imagePng);

//continue

关于php - Base64 编码 PHP 生成的图像,而不将图像写入磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35034023/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com