0

好的。我的脚本允许人们通过 JavaScript 在 base64 中上传图像。一切都很顺利,除了一件事。图像可以有粉红色 (255,0,255) 粉红色背景。该粉红色背景应转换为透明(在插入数据库之前)。但是当我将它保存在我的数据库中(在 base64 中)时,背景仍然是粉红色的。

$tile 是图像的 base64(显然)。

function imagetobase64 ($img)
{
    if (!is_resource($img))
        return "";

    ob_start();
    imagepng($img);
    $content = ob_get_contents();
    ob_end_clean();
    return base64_encode($content);
}

$tile = str_replace(' ', '+', $tile); // Because spaces in the JavaScript should be + in PHP

$img = imagecreatefromstring(base64_decode($tile));
imagesavealpha($img, true);
$pink = imagecolorallocate($img, 255, 0, 255);
imagecolortransparent($img, $pink);
$tile = imagetobase64($img);
imagedestroy($img);
// Here the query etc.

如果需要,请随时询问更多详细信息。

4

0 回答 0