Heim > Web-Frontend > H5-Tutorial > So lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas

So lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas

青灯夜游
Freigeben: 2019-11-26 17:43:00
nach vorne
18557 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen zur Lösung des Problems des toDataURL()-Fehlers vorgestellt, der durch die Einführung domänenübergreifender Bilder in Canvas verursacht wird. Der Herausgeber hält es für recht gut, daher werde ich es jetzt mit Ihnen teilen Geben Sie es als Referenz an. Kommen Sie und schauen Sie sich den Editor an

Empfohlenes Handbuch:HTML5-Referenzhandbuch für die neueste Version

Dieser Artikel stellt die Ergebnisse der Einführung von Cross vor -Domain-Bilder in Canvas Die Lösung für den von toDataURL() gemeldeten Fehler wird wie folgt mit allen geteilt:

So lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas

[Szenario]

Wenn der Benutzer Öffnet die Webseite, Tencent COS wird angefordert (Bildbilder auf dem Server). Verwenden Sie Leinwand zum Zeichnen.

Dann kann der Benutzer das Bild erneut auswählen, zuschneiden und hochladen.

【Problem】

Wenn das Bild zum ersten Mal geladen wird, gibt es nach der Auswahl eines neuen Bildes kein Problem beim Zuschneiden und Zeichnen. Der Upload ist jedoch mit folgendem Fehler fehlgeschlagen:

Fehler beim Ausführen von „toDataURL“ auf „HTMLCanvasElement“: Befleckte Leinwände können beim Zitieren nicht exportiert werden. Legen Sie das Feld „crossOrigin“ fest:

                var c=document.getElementById("cover_show");
                var img=new Image();
                img.src="http://vsqx-cover-xxxxxx.coscd.myqcloud.com/"+this.vsqx_uid+".jpg";
                //增加这一行:
                img.setAttribute("crossOrigin",'anonymous');
                img.onload = function(){
                    var cxt=c.getContext("2d");
                    cxt.drawImage(img,0,0,300,150,0,0,200,126);
                }
Nach dem Login kopieren
und erneut ausführen. Ich habe festgestellt, dass das Bild beim ersten Laden nicht angezeigt wurde. . .

Die Konsole hat den folgenden Fehler gemeldet:

[Endgültige Lösung]So lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas

Anmelden bei Tencent Cloud COS, suchen Sie diesen Bucket und legen Sie „Cross-domain access CORS“ fest. (Gleiches gilt auch für andere PHP/JAVA-Server)

Erneut testen: Das Bild wird erfolgreich angezeigt und das Bild wurde erfolgreich hochgeladen. So lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas

Empfohlene verwandte Artikel:

1.Einführung in die Rolle des HTML5-Canvas-Tags und den historischen Ursprung des Canvas-Tags
2.Dreiminütiges HTML5-Canvas-Animations-Tutorial (Canvas)
Zugehöriges Video-Tutorial: 1.
Dugu Jiujian (1)_HTML5-Video-Tutorial

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe es wird für das Lernen aller hilfreich sein!

Das obige ist der detaillierte Inhalt vonSo lösen Sie das Problem des toDataURL()-Fehlers bei der Einführung domänenübergreifender Bilder in Canvas. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:jb51.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage