首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像预览和web workers

图像预览和web workers
EN

Stack Overflow用户
提问于 2012-02-15 10:44:19
回答 3查看 2.9K关注 0票数 2

是否可以在web worker中使用filereader api来加载图像,即用于预览/缩略图,从而防止主ui线程阻塞。

类似于this,但将cpu密集型部分(主要是读取文件内容和缩放图像)包装在web worker中。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-02-15 12:14:47

对于worker,无法访问页面的DOM级别,因此无法创建image对象或画布(用于缩放部分),因此答案是否定的,因为您想要操作图像。

虽然可以通过ajax或FileReaderSync在web worker上加载图像文件,将其转换为base64数据url字符串并将其发送回主脚本,但无法通过操作图像来创建缩略图。(除非你知道png/jpg/bmp格式的文件规范,并且想要硬编码一个直接在二进制字符串上工作的缩放函数,否则看起来不是很好,对吧?)

票数 4
EN

Stack Overflow用户

发布于 2012-02-15 19:29:44

主线程被称为UI线程,因为与UI直接相关的所有事情都必须在那里发生。您不能在Web Worker中操作DOM,但可以在Web Worker中操作图像文件的二进制文件。在图像处理之后,您必须将数据传输到主线程,并让它将其附加到DOM。然后,浏览器将在主线程中呈现此图像。

票数 2
EN

Stack Overflow用户

发布于 2014-01-12 20:28:55

这是可能的,如果你可以的话。

服务器上的

  • 让PHP将所请求的图像加载到GD表示中,每个像素information(imagecolorat).
  • Extract
    • 颜色,responseType和responseText设置为响应。(打包)它们中的每一个并将它们添加到字符串中。
    • 将该字符串发送回worker。
    • 根据响应创建一个新代码。
    • 将所有权添加到主脚本。
    • 将数据添加到画布。

    < Uint8Array >F219

阅读:Sending ArraybufferTransferable Objects

写下整个脚本将超出范围。

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

https://stackoverflow.com/questions/9287202

复制
相关文章

相似问题

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