Эквивалент Flash's BitmapData.hitTest () в HTML5 JavaScript - PullRequest
3 голосов
/ 12 января 2011

Я хотел бы знать, существуют ли в JavaScript существующие эквивалентные методы (для браузеров, поддерживаемых HTML5), которые могут оценивать хит-тест растрового изображения на битовой карте, как это делает Flash.

Кроме того, как можно добиться «фильтра размытия»? Можно ли «нарисовать» существующие теги DIV / SPAN (например, метод Flash-BitmapData.draw ()) в растровом объекте, чтобы его можно было использовать для цели «hitTest» на холсте?

Я думаю, что здесь может быть неправильный жаргон HTML5, но, надеюсь, в этом есть какой-то смысл.

Существуют ли какие-либо встроенные методы проверки касания друг друга растровых изображений при оценке на уровне пикселей?

Спасибо!

Ответы [ 2 ]

1 голос
/ 12 августа 2012

PlayMyCode имеет большое пошаговое объяснение функции обнаружения столкновений Javascript на пиксель , которая работает очень похоже на hitTest Actionscript.

1 голос
/ 12 января 2011
  1. Нет, в HTML Canvas или Context нет методов, позволяющих определить, перекрываются ли две области.Нет тестов для неплоских областей перекрытия непрозрачных пикселей, нет тестов для преобразованных перекрывающих прямоугольников, нет тестов даже для перекрывающихся выровненных по оси ограничительных рамок.Любое такое тестирование попаданий должно выполняться вами или высокоуровневым API, отслеживающим отдельные растровые изображения.Canvas / Context - это API без сохранения низкоуровневого пиксельного блинта и рисования API.

  2. Нет, вы не можете сериализовать рендеринг элементов HTML в изображение холста(кроме использования drawImage() для копирования изображений и / или полотен).Это включает в себя попытку захвата контента, который рисуется под прозрачным / полупрозрачным холстом.Существуют проблемы с безопасностью, если это разрешено, и это не так.

    • Однако вы можете «размыть» содержимое уже нарисованное на холсте, используя getImageData(), чтобы получитьнеобработанные пиксели, затем манипулирование значениями пикселей, а затем использование putImageData() для перемещения измененных пикселей обратно на холст.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...