2012-09-20 3 views
0

나는 매우 단순한 HTML5/Canvas 기반의 드로잉 앱을 브라우저에서만 사용하고있다. 나는 다양한 프로그래밍 드로잉 효과 등을 가지고 놀기위한 개념 증명으로 설정하고있다. 그러나 캔버스 2D 컨텍스트에서 ImageData를 가져 오려고하면 문제가 발생합니다. 즉 SecurityError입니다.내 context.getImageData() 호출이 불법입니까?

이제 브라우저 간 콘텐츠의 보안 문제와 로컬 콘텐츠가 포함 된 웹 서버에서 실행되는 보안 문제에 대해 모두 알고 있습니다. 이건 내 문제가 아니야. 이미지가 사용되지 않습니다. 그리고 더 이상한 일은 내가 코드에서 일부 이미지 데이터를 가져올 수 있지만 다른 것은 가져갈 수 없다는 것입니다. 특히, 내가 원하는 곳에있는 함수 내에서가 아닙니다. http://jsfiddle.net/grimertop90/77Z42/ 가 놀러 자유롭게, 캔버스에 그리기 시도 : 여기

내 코드의 포크입니다.

(참고 :.. 내가 크롬에서 개발되었고, 그것이 잘 작동하지만 난 그냥 파이어 폭스에서 실행 시도하고이 문제를 갖고있는 것 같아요 내 목적을 위해, 단지 크롬에서 그것을 확인하시기 바랍니다)

자바 스크립트를 보면 "사례 1", "사례 2"및 "사례 3"으로 표시된 세 개의 점이 표시되어야합니다. 이 코드는 캔버스의 ImageData를 가져 오려고 시도한 세 가지 사항입니다. 사례 1과 사례 3; 중요한 사례 2는 그렇지 않습니다. 케이스 1은 초기화 중입니다. 사례 3은 사용자가 버튼을 클릭 할 때 발생합니다. 깨진 점 2는 캔버스에 특정 점을 그릴 때 시작됩니다.

문제가 무엇인지 알지 못합니다. 특히 3 곳 중 2 곳에서 작동합니다.

답변

1

코드가 제대로 작동하므로 유일한 문제는 arcSketch 호출에 누락 된 인수입니다. 현재 가지고있는 것은 :

if (points.length> = 100) {arcSketch(); }

다만

그것을 변경하는 경우 (points.length> = 100) {arcSketch (X, Y); }

오류가 발생하는 ctx.getImageData(Nan, Nan, 200, 200)을 호출하려고했습니다. 당신은 그것을 작동 볼 수 있습니다 here

+0

Bahahahaha 감사합니다 남자. 그저 평범한 수치. –

관련 문제