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.
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
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.
Tags und Links javascript jquery canvas html5-canvas