При конвертации canvas в DataURL выдаёт белое изображение

114
15 августа 2021, 00:50

Проблема, собственно, описана в заголовке) Ниже мой код. Буду благодарен за любые идеи.

    fillCanvasHandler = (src) => {
    const modalBody = document.getElementsByClassName('Modal__body');
    const canvas = document.getElementById('display__canvas'),
          context = canvas.getContext("2d");
    canvas.width = modalBody[0].offsetWidth - 20;
    canvas.height = canvas.width * 0.65;
    context.font = '16px Ubuntu, sans-serif';
    const title = this.state.displayAdsData.title,
          titleWidth = context.measureText(title).width,
          img = new Image();
    img.src = src;
    const posXTitle = (canvas.width/2) - (titleWidth / 2),
          posYTitle = canvas.height - 20,
          posXLogo = 20,
          posYLogo = 20;
    img.onload = () => {
        context.drawImage(img, 0, 0, img.width / (img.width / canvas.width), img.height / (img.width / canvas.width));
        context.fillStyle = "rgba(0, 0, 0, 0.4)";
        context.fillRect(0, posYTitle - 30, canvas.width, 50);
        context.fillStyle = '#fff';
        context.fillText(`${title}`, posXTitle , posYTitle);
        img.src = this.state.displayAdsData.logo;
        img.onload = () => {
            context.drawImage(img, posXLogo, posYLogo, 50, 50);
        }
    }
    const image = document.createElement('img');
    const imageForDisplayAds = canvas.toDataURL('image/png');
    image.src = imageForDisplayAds;
    image.onload = () => {
        modalBody[0].appendChild(image);
    }
    this.setState({
        currentImageForDisplay: imageForDisplayAds
    })
}
READ ALSO
Скрипт определения наличия блока

Скрипт определения наличия блока

Нужен скрипт, который будет установлен на странице indexhtml и будет на странице /$user_id проверять, есть ли там <div id="reverbs5", если да - то применять...

97
Как поменять имя атрибута у элемента?

Как поменять имя атрибута у элемента?

У меня есть много тегов <img> и у некоторых из них вместо data-src="путь/к/картинке" стоит data-lazy="путь/к/картинке", и это ломает lazyload на моем сайте

142
обратиться к значению prompt

обратиться к значению prompt

Если вводить значения в prompt через пробел (Вася Петя Саша), как сделать массив значений и обращаться непосредственно к определенному элементу?

99