首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将ImageBitmap转换为Blob

将ImageBitmap转换为Blob
EN

Stack Overflow用户
提问于 2018-10-24 01:19:41
回答 1查看 7.1K关注 0票数 4

我使用createImageBitmap()来创建一个ImageBitmap文件。

如何将此文件转换为blob或理想的PNG以便上载?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-24 01:27:58

目前唯一的方法是在画布上画它。

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

代码语言:javascript
复制
(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()中可以传递的选项(文件格式和质量,如果适用的话)。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52959839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档