簡體   English   中英

使用 javascript 將 base64 編碼字符串寫入圖像

[英]Write base64 encoded string as Image with javascript

我正在使用FFmpeghtml2canvus並嘗試使用從 slider 截取的屏幕截圖創建 mp4 視頻。

這是我的工人初始化

const worker = createWorker({
    //logger: ({ message }) => console.log(message),
    progress: (p) => console.log(p),
});

然后在點擊中,我截取屏幕截圖並放入視頻中

const image2video = async () => {
    displayLoader();
    var zip = new JSZip();
    let selectedbanners = $(".selected_templates:checked");
    await worker.load();
    let promise = new Promise((resolve, reject) => {
        let Processed = 0;
        selectedbanners.each(async function () {
            var dataIndex = $(this).data('index');
            let ad = adTemplates[dataIndex];
            var innercounter = 0;
            $(`.template-container-${ad.name}`).each(async function () {
                var imgData;
                await html2canvas($(`.template-container-${ad.name}`)[innercounter], {allowTaint: true, width: ad.width, height: ad.height}).then(canvas => {
                    imgData = canvas.toDataURL('image/jpeg', 1.0).split('base64,')[1];
                    //await worker.write(`tmp.${ad.name}.${innercounter}.png`, imgData);

                });
                await worker.write(`tmp.${ad.name}.${innercounter}.png`, imgData);
                //await worker.write(`tmp.0.png`, `static/triangle/tmp.0.png`);   This is working
            });
        });
    });
};

我在這里設置了一個codepen 如果我放置圖像路徑它可以工作,但如果我直接傳遞 base64 字符串則不起作用。 在這里我發現它還支持 base64 字符串以及 URL。 這就是它在控制台中的樣子在此處輸入圖像描述 提前致謝。

我修復了只是更改了一行代碼。

imgData = `data:image/png;base64,`+canvas.toDataURL('image/png', 1.0).split('base64,')[1];

在此,我只是 append 數據 URL 並將圖像類型從 JPEG 更改為 png 並且它工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM