Fabric.js canvas.toDataURL () отправлено в PHP Ajax
У меня проблема здесь, когда мне нужно создать изображение с прозрачным фоном. Я до сих пор не знаю, проблема ли с fabricjs или с php. Все отлично работает, когда я отправил изображение с цветным фоном. Проблема возникает, когда я отправляю изображение с прозрачным фоном. Сгенерированное изображение создано с черным фоном. Итак, позвольте мне объяснить лучше: когда пользователь нажимает кнопку «Сохранить», я отправляю строковое представление canvas на php на стороне сервера, чтобы сгенерировать изображение canvas. Поэтому я использую следующую функцию для отправки строкового представления холста с помощью 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'; }
Опять же, проблема только с фоном прозрачного холста. С цветным фоном все работает нормально.