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';
    }

Опять же, проблема только с фоном прозрачного холста. С цветным фоном все работает нормально.

Ответы на вопрос(4)

Ваш ответ на вопрос