У меня проблема здесь, когда мне нужно создать изображение с прозрачным фоном.Я до сих пор не знаю, проблема ли с fabricjs или с php.Все отлично работает, когда я отправил изображение с цветным фоном.Проблема возникает, когда я отправляю изображение с прозрачным фоном.Сгенерированное изображение создано с черным фоном.Итак, позвольте мне объяснить лучше: когда пользователь нажимает кнопку «Сохранить», я отправляю строковое представление canvas на php на стороне сервера, чтобы сгенерировать изображение canvas.Поэтому я использую функцию follow для отправки строкового представления холста с помощью Ajax (функция POST jQuery):
function sendStringRepresentation(){
var strDataURI = canvas.toDataURL();
strDataURI = strDataURI.substr(22, strDataURI.length);
$.post("action/createImage.php",
{
str: strDataURI
},
function(data){
if(data == "OK"){
$("#msg").html("Image created.");
}
else{
$("#msg").html("Image not created.");
}
});
}
В PHP-файле я использую следующий код для генерации изображения:
// createImage.php
$data = base64_decode($_POST["str"]);
$urlUploadImages = "../uploads/img/";
$nameImage = "test.png";
$img = imagecreatefromstring($data);
if($img) {
imagepng($img, $urlUploadImages.$nameImage, 0);
imagedestroy($img);
// [database code]
echo "OK";
}
else {
echo 'ERROR';
}
Опять же, проблема только с фоном прозрачного холста.С цветным фоном все отлично работает.