Доступны ли веб-рабочим доступ к холсту?Веб-работники и холсты
ответ
Небольшое обновление, так как этот вопрос в настоящее время более чем половина года:
В Chrome/Хром 6 Теперь вы можете отправить холст ImageData объект на веб-работника, пусть веб-работника внести изменения в объект, а затем записать его обратно на холст, используя putImageData (..).
Google, Chromabrush делает это таким образом, исходный код можно найти здесь:
Update:
Последние снимки развития Opera (10.70) и Firefox (4.0b1) также поддерживают передачу ImageDa ta объектов веб-работнику.
Update 2017:
Актуальные ссылки с Github (легче найти нужные файлы из Chromabrush
):
No.
PostMessage спецификация была обновлена несколько месяцев назад, чтобы размещать объекты ImageData, но пока еще никто не реализовал это поведение (все мы попасть туда). Проблема с самим холстом заключается в том, что он является элементом DOM и поэтому не работает в рабочем месте (DOM отсутствует).
Это было поднято недавно либо в списках рассылки whatwg, либо в веб-приложениях, поэтому я подозреваю, что мы начнем смотреть, можно ли предоставить работникам CanvasRenderingContext2D-like api.
Я был под впечатлением WebWorker не позволяло бы взаимодействовать с DOM, поскольку это могло бы привести к возможной проблеме лемы, если несколько веб-мастеров вносят изменения. –
Проблема в том, что DOM не имеет понятия параллелизма, поэтому рабочие не разрешают какое-либо общее состояние. Единственный способ общения с работником - это postMessage, и он выполняет клон в соответствии с «внутренним структурированным алгоритмом клонирования», который в основном можно рассматривать как JSON, но с дополнительной поддержкой нескольких типов ключей (File, FileList, ImageData, Blob, Date и RegExp) – olliej
Этот ответ устарел. Другой ответ теперь лучше. – Baxissimo
- 1. three.js несколько Холсты и Shader
- 2. Silverlight 2 и большие холсты?
- 3. Tainted холсты
- 4. js холсты порядок укладки
- 5. Рафаэль JS вложенные холсты?
- 6. Можно ли кэшировать холсты?
- 7. Многослойные холсты и события click (Createjs)
- 8. Невозможно добавить псевдоэлемент на холсты?
- 9. Многоуровневые многослойные холсты в WPF
- 10. Tkinter: Холсты, привязанные к событиям
- 11. Манипулирующие холсты дети C# WPF
- 12. Как сделать тексты и холсты отзывчивыми с помощью twitter bootstrap?
- 13. HTML5 холст drawImage медленный, когда исходные и целевые холсты одинаковы?
- 14. штабелирования холсты удаляет HTML по умолчанию прозрачности
- 15. EaselJS - Имею две холсты с разными FPS
- 16. Как нарисовать webkit-трансформированные холсты в один?
- 17. Почему мои холсты загружаются только при обновлении?
- 18. Как мне заставить две холсты-анимации столкнуться?
- 19. Являются ли divs более дорогостоящими, чем холсты?
- 20. Как центрировать две холсты друг на друга?
- 21. Android помещает все мои холсты в другой класс?
- 22. Скопируйте многослойные холсты HTML5 на одно изображение в JavaScript
- 23. Как сохранить только изображение холста, а не все холсты
- 24. Как я могу перетаскивать холсты в Vbox для повторного заказа?
- 25. Как эффективно использовать холсты для нескольких холстов THREE.Texture
- 26. Как перерисовать объекты холста на большие холсты с помощью Fabricjs
- 27. Проблема добавления холсты в StackPanel в коде в МОФ
- 28. JavaScript: toDataUrl() бросает «Ошибка безопасности: зараженные холсты могут не экспортироваться».
- 29. Хром. Тонкие холсты не могут быть экспортированы; Offline-only app
- 30. Многослойные холсты HTML5 Высота/ширина Сброс до 300x150px
Позвольте мне угадать, что IE отличается? – Lothar