Ich verwende also Google Maps und bekomme das Bild so, dass es so aussieht
<img id="staticMap"
src="http://maps.googleapis.com/maps/api/staticmap?center=Brooklyn+Bridge,New+York,NY&zoom=13&size=600x300&maptype=roadmap
&markers=color:blue%7Clabel:S%7C40.702147,-74.015794&markers=color:green%7Clabel:G%7C40.711614,-74.012318
&markers=color:red%7Ccolor:red%7Clabel:C%7C40.718217,-73.998284&sensor=false">
Ich muss es retten. Ich habe folgendes gefunden:
function getBase64FromImageUrl(URL) {
var img = new Image();
img.src = URL;
img.onload = function() {
var canvas = document.createElement("canvas");
canvas.width = this.width;
canvas.height = this.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(this, 0, 0);
var dataURL = canvas.toDataURL("image/png");
alert(dataURL.replace(/^data:image\/(png|jpg);base64,/, ""));
};
}
Aber ich bekomme dieses Problem:
Nicht erfasster Sicherheitsfehler: Fehler beim Ausführen von 'toDataURL' auf 'HTMLCanvasElement': Beschmutzte Leinwände können möglicherweise nicht exportiert werden.
Ich habe nach Korrekturen gesucht. Ich habe hier ein Beispiel gefunden, wie man CORS verwendet, aber ich kann diese beiden Codeteile immer noch nicht zusammenbinden, damit es funktioniert. Vielleicht mache ich es falsch und es gibt einen einfacheren Weg, es zu tun? Ich versuche, dieses Bild zu speichern, damit ich die Daten auf meinen Server übertragen kann. Vielleicht hat jemand so etwas gemacht und weiß, wie man .toDataURL()
Arbeit macht, wenn ich sie brauche?
403
), können Sie möglicherweise auf die Verwendung zurückgreifen,canvas.toDataURL(img)
in der Hoffnung, dass sie vom selben Ursprung wie die Seite bereitgestellt wird . Dieses Standardverhalten führt auch zur Originaldatei (EXIF et al.)