当我需要创建具有透明背景的图像时,我遇到了问题。我仍然不知道问题出在fabricjs 还是php 上。当我发送带有彩色背景的图像时,一切正常。当我发送具有透明背景的图像时会出现问题。生成的图像以黑色背景创建。所以,让我更好地解释一下:当用户单击保存按钮时,我将画布的字符串表示形式发送到服务器端的 php,以生成画布的图像。所以我使用以下函数通过 Ajax 发送画布的字符串表示(jQuery 的 POST 函数):
函数发送字符串表示(){
var strDataURI = canvas.toDataURL();
strDataURI = strDataURI.substr(22, strDataURI.length);
$.post("action/createImage.php",
{
字符串:strDataURI
},
功能(数据){
如果(数据==“确定”){
$("#msg").html("图像创建。");
}
别的{
$("#msg").html("图像未创建。");
}
});
}
在 PHP 文件中,我使用以下代码生成图像:
// createImage.php
$data = base64_decode($_POST["str"]);
$urlUploadImages = "../uploads/img/";
$nameImage = "test.png";
$img = imagecreatefromstring($data);
如果($img){
imagepng($img, $urlUploadImages.$nameImage, 0);
图像销毁($img);
// [数据库代码]
回声“确定”;
}
别的 {
回声“错误”;
}
同样,问题只是背景透明画布。彩色背景一切正常。