gpt4 book ai didi

javascript - 将 ImageBitmap 转换为 Blob

转载 作者:行者123 更新时间:2023-11-30 09:19:07 72 4
gpt4 key购买 nike

我正在使用创建一个 ImageBitmap 的 createImageBitmap()文件。

如何将此文件转换为 blob 或最好是 PNG 以便我可以上传?

最佳答案

目前唯一的方法是在 Canvas 上绘制。

为了提高效率,您可以尝试使用 ImageBitmapRenderingContext ,这将不会再次复制像素缓冲区。

(async () => {

const resp = await fetch('https://upload.wikimedia.org/wikipedia/commons/4/47/PNG_transparency_demonstration_1.png');
// yes.. from a Blob to a Blob...
const blob1 = await resp.blob();
const bmp = await createImageBitmap(blob1);
console.log(bmp); // ImageBitmap
// create a canvas
const canvas = document.createElement('canvas');
// resize it to the size of our ImageBitmap
canvas.width = bmp.width;
canvas.height = bmp.height;
// get a bitmaprenderer context
const ctx = canvas.getContext('bitmaprenderer');
ctx.transferFromImageBitmap(bmp);
// get it back as a Blob
const blob2 = await new Promise((res) => canvas.toBlob(res));
console.log(blob2); // Blob
const img = document.body.appendChild(new Image());
img.src = URL.createObjectURL(blob2);

})().catch(console.error);

检查 HTMLCanvasElement#toBlob()对于您可以传入的选项(文件格式和质量,如果适用)。

关于javascript - 将 ImageBitmap 转换为 Blob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52959839/

72 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com