2009-12-08 5 views

답변

59

작은 업데이트 :

크롬에서 지금 웹 작업자, 웹 노동자에 반대하자 imageData의 캔버스를 보낼 수 있습니다/크롬 6을 변경 개체를 입력 한 다음 putImageData (..)을 사용하여 다시 캔버스에 씁니다.

구글의 Chromabrush가이 방법을 수행, 소스 코드는 여기에서 찾을 수 있습니다 :

업데이트 :의

최신 개발 스냅 샷 Opera (10.70) 및 Firefox (4.0b1)는 ImageDa 전달도 지원합니다. 웹 작업자에게 객체를 보냅니다.

업데이트 2017 : (Chromabrush에서 필요한 파일을 쉽게 찾을 수)

실제 Github에서의 링크 : 나는 인상 WebWorker에서

+1

IE가 다르게 보입니까? – Lothar

4

번호

PostMessage를 사양은 imageData의 객체를 게시 할 수 있도록 다시 몇 달을 업데이트했지만 아직 아무도 그 동작을 (우리 모두가지고있어) 구현하지 않았다. 캔버스 자체의 문제점은 DOM 요소이므로 작업자에서 작동하지 않는다는 것입니다 (DOM이 없음).

이것은 최근에 whatwg 또는 web-apps 메일 링리스트에서 제기되었으므로 우리는 worker에서 CanvasRenderingContext2D와 유사한 API를 제공 할 수 있는지 여부를 살펴볼 것입니다. 문제는 이제 더 반 년 이상 지속 된 것에

+0

했다 가능한 prob로 실행되는 DOM과의 상호 작용을 허용하지 않습니다. 여러 웹 작업자가 변경하는 경우 –

+3

문제는 동시성에 대한 개념이 DOM에 없으므로 Workers는 공유 상태를 허용하지 않는다는 것입니다. 작업자와 통신하는 유일한 방법은 postMessage를 사용하는 것이며, 기본적으로 JSON이라고 생각할 수있는 "내부 구조화 된 알고리즘"에 따라 복제를 수행하지만 몇 가지 키 유형 (File, FileList, ImageData, Blob, 날짜 및 RegExp) – olliej

+3

이 답변은 오래되었습니다. 다른 대답은 이제 더 좋습니다. – Baxissimo