Leinwand in ein Bild mit JavaScript konvertieren [duplizieren]

8

Ich möchte canvas in ein Bild mit JavaScript konvertieren, wenn ich canvas.toDataURL("image/png"); versuche gibt es den Fehler SecurityError: The operation is insecure . Bitte helfen Sie mir, dieses Problem zu lösen.

Vielen Dank im Voraus.

    
mmpatel009 30.04.2013, 13:43
quelle

2 Antworten

10

Sie haben die richtige Idee und es funktioniert in sehr einfachen Fällen wie:

%Vor%

Ссылка

Aber es wird problematisch, wenn Sie Ihre Leinwand "verschmutzt" haben. Dies geschieht, indem Bilder von einem anderen Ursprung auf die Leinwand gezeichnet werden. Wenn Ihr Zeichenbereich beispielsweise auf www.example.com gehostet wird und Sie Bilder von www.wikipedia.org verwenden, wird das Flag für Ursprungsreinheit Ihres Arbeitsbereichs auf false intern festgelegt.

Sobald das Flag für Herkunftssicherung auf false gesetzt ist, dürfen Sie toDataURL oder getImageData

nicht mehr aufrufen

Technisch gesehen haben Bilder denselben Ursprung, wenn Domänen, Protokolle und Ports übereinstimmen.

Wenn Sie lokal arbeiten (file: //), wird jedes Bild, das gezeichnet wird, das Flag setzen. Das macht das Debuggen nervig, aber mit Chrome können Sie es mit dem Flag --allow-file-access-from-files starten, um dies zu ermöglichen.

    
Simon Sarris 30.04.2013 14:03
quelle
-6

Das hat für mich funktioniert

%Vor%     
Sharan Rajendran 06.08.2013 14:33
quelle