context.getImageData () - Operation ist unsicher

8

Ich möchte einen einfachen Graustufenfilter für HTML5-Canvas erstellen, aber ich kann die Bilddaten nicht als Pixel aufnehmen. Ich erhalte Sicherheitswarnungen von FF und Chrome. Schließlich macht der Filter das Bild nicht grau.

JS FIDLE CODE

js:

%Vor%     
daisy 11.06.2013, 01:07
quelle

1 Antwort

3

Dies ist eine Sicherheitsfunktion. Von W3 :

  

Die getImageData(sx, sy, sw, sh) -Methode muss, wenn das Ursprungs-Clean-Flag des Canvas-Elements auf "false" gesetzt ist, eine SecurityError -Ausnahme

auslösen

Dies soll verhindern, dass Besitzer böswilliger Websites potenziell private Bilder laden, auf die der Browser des Benutzers Zugriff hat, und dann die Daten an ihre eigenen Server senden. Die Ursprungsreinigung kann ausgeschaltet werden, wenn:

  
  • Die drawImage () -Methode des 2D-Kontexts des Elements wird mit einem HTMLImageElement oder einem HTMLVideoElement aufgerufen, dessen Ursprung nicht identisch ist   wie das des Document-Objekts, das das canvas-Element besitzt.

  •   
  • Die drawImage () - Methode des 2D-Kontexts des Elements wird mit einem HTMLCanvasElement aufgerufen, dessen Ursprungs-Clean-Flag false ist.

  •   
  • Das fillStyle-Attribut des 2D-Kontexts des Elements wird auf ein CanvasPattern-Objekt gesetzt, das aus einem HTMLImageElement oder einem   HTMLVideoElement, dessen Ursprung nicht mit dem des Dokuments übereinstimmt   Objekt, das das Element canvas besitzt, als das Muster erstellt wurde.

  •   
  • Das fillStyle-Attribut des 2D-Kontexts des Elements wird auf ein CanvasPattern-Objekt gesetzt, das aus einem HTMLcanvasElement-Objekt erstellt wurde   Ursprungs-Clean-Flag war falsch, als das Muster erstellt wurde.

  •   
  • Das strokeStyle-Attribut des 2D-Kontexts des Elements wird auf ein CanvasPattern-Objekt gesetzt, das aus einem HTMLImageElement oder einem   HTMLVideoElement, dessen Ursprung nicht mit dem des Dokuments übereinstimmt   Objekt, das das Element canvas besitzt, als das Muster erstellt wurde.

  •   
  • Das strokeStyle-Attribut des 2D-Kontexts des Elements wird auf ein CanvasPattern-Objekt gesetzt, das von einem HTMLcanvasElement-Objekt erstellt wurde   Ursprungs-Clean-Flag war falsch, als das Muster erstellt wurde.

  •   
  • Die Methoden fillText () oder strokeText () des 2D-Kontexts des Elements werden aufgerufen und enden mit einer Schriftart, die einen Ursprung hat, der nicht der ist   Gleich wie das des Document-Objekts, das das Canvas-Element besitzt.

  •   

Quelle

    
Tim Cooper 11.06.2013, 01:12
quelle

Tags und Links