首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将图像存储在SharedArrayBuffer中

将图像存储在SharedArrayBuffer中
EN

Stack Overflow用户
提问于 2022-11-12 06:08:07
回答 1查看 17关注 0票数 0

我希望将大型texture.image的像素数据加载到SharedArrayBuffer中。是否有人有以最优雅的方式将大型texture.image存储在ArrayBuffer中的经验?

代码语言:javascript
复制
function GetImageData(image) {      
    const canvas = new OffscreenCanvas(image.width, image.height);
    const context = canvas.getContext('2d');
    context.drawImage( image, 0, 0 );

    const imageData = context.getImageData(0, 0, image.width, image.height);
    const data = imageData.data;

    //? 

    return new SharedArrayBuffer(  /*?*/  ));
}

我这样做正确吗?在有问号的地方,直到现在我都不知道该怎么做。我的目标是与多个工作线程共享图像数据。

EN

回答 1

Stack Overflow用户

发布于 2022-11-14 04:41:55

我想我有:

代码语言:javascript
复制
function GetImageData(image) {
   let canvas = new OffscreenCanvas(image.width, image.height); 
   let context = canvas.getContext('2d'); 
   context.drawImage( image, 0, 0 );
            
   let imageData = context.getImageData(0, 0, image.width, image.height);
            
   const bytesInFloat32 = 4;
   //set size of the SharedArrayBuffer
   const sharedBuffer = new Float32Array(
      new SharedArrayBuffer(bytesInFloat32 * imageData.data.length)
   );
   
   //copy image data into the SharedArrayBuffer
   sharedBuffer.set(imageData.data, 0);
    
   //free up memory     
   canvas = context = imageData = null;

   return sharedBuffer;
}

我还在这里找到了一个关于SharedArrayBuffer和Worker主题的很好的链接

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

https://stackoverflow.com/questions/74410754

复制
相关文章

相似问题

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