Я пытаюсь написать расширение для браузера, которое выполняет некоторую обработку изображений, но мне нужен доступ к данным изображения. Мой подход состоял в том, чтобы создать скрытый элемент холста, нарисовать на нем изображения и видео с помощью drawImage
, а затем прочитать данные о пикселях с помощью getImageData
. Это прекрасно работает, но на многих страницах половина содержимого не отображается из-за ошибок CORS.
Я все еще не понимаю, почему существует CORS (что-то вроде запрета на кражу данных, но тогда, если данные находятся на клиентском компьютере, разве они уже не «украдены»? :S). Все, к чему это, похоже, приводит, — это заторможенные хаки, такие как внедрение JS-скриптов. Таким образом, 1. это не работает, потому что для каждого браузера слишком сложно правильно контролировать, и 2. разработчики наказываются и должны писать обходные пути для конкретного браузера. Поэтому я думаю, что у меня должно быть неправильное представление, потому что это кажется довольно глупым.
Сделав шаг назад, я думаю, что идея расширения, которое может выполнять некоторую обработку изображений, совершенно нормальна и не вредоносна, поэтому, пожалуйста, не отвечайте «нет, вам не следует делать это по соображениям безопасности». ".
Я подозреваю, что браузер рассматривает это расширение как нечто постороннее, которое может выполнять вредоносные действия. Как я могу убедить браузер в том, что клиенту нужны эти функции, и предоставить мне доступ к изображениям и видеоконтенту? У меня уже есть полный доступ к модели DOM. есть разница??
Есть ли другой способ получить данные изображения/видео из расширения?
src="blob:..."
. - person krookedking   schedule 27.08.2016crossOrigin = "Anonymous"
, но в противном случае я не видел другого способа. - person jozxyqk   schedule 28.08.2016desktopCapture
... довольно излишняя, но работающая. - person krookedking   schedule 28.08.2016