Vì vậy, tôi đang sử dụng bản đồ google và tôi nhận được hình ảnh giống như thế này
<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">
Tôi cần phải lưu nó. Tôi đã tìm thấy điều này:
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,/, ""));
};
}
Nhưng tôi gặp vấn đề này:
Uncaught SecurityError: Không thực thi được 'toDataURL' trên 'HTMLCanvasElement': có thể không xuất được các tấm vải bị nhiễm bẩn.
Tôi đã tìm kiếm các bản sửa lỗi. Tôi đã tìm thấy một mẫu ở đây Cách sử dụng CORS nhưng tôi vẫn không thể buộc 2 đoạn mã này lại với nhau để làm cho nó hoạt động. Có lẽ tôi đang làm sai cách và có một cách đơn giản hơn để làm điều đó? Tôi đang cố gắng lưu ảnh này để có thể chuyển dữ liệu đến máy chủ của mình. Vì vậy, có thể ai đó đã làm điều gì đó như thế này và biết cách làm .toDataURL()
việc như tôi cần?
403
), bạn có thể quay lại sử dụngcanvas.toDataURL(img)
với hy vọng rằng nó được cung cấp từ cùng một nguồn gốc như trang. Hành vi mặc định này cũng sẽ dẫn đến tập tin gốc (EXIF et al.)