我不确定它是否与 imagemapster 兼容,因为我从未使用过这个。
但是,由于 imagemapster 似乎使用常规img
元素,并且在 JavaScript 中可以将 a 的内容转换为canvas
base64 字符串,我认为您可以找到一种解决方法。
所以你可以做的是创建一个canvas
与你的图像元素大小相同的:
var image = document.querySelector('#imagemapster-element');
var canvas = document.createElement('canvas');
var context = canvas.getContext('2d');
canvas.height = image.height;
canvas.width = image.width;
context.drawImage(image, 0, 0);
var dataURL = canvas.toDataURL('image/png');
console.log('image size', dataURL.length);
canvas = null;
http://jsfiddle.net/FloSchieldBobby/0p7hd861/
然后使用提交的 HTML 表单将其上传到您的服务器,您可以将此 base64 字符串作为hidden input
示例传递给该表单:
var form = document.querySelector('#submit-image-form');
var base64Input = document.querySelector('#image-data-field');
base64Input.value = dataURL;
form.submit();
或使用 XMLHttpRequest
var data = new FormData();
data.append('imageData', dataURL);
var request = new XMLHttpRequest();
request.open('POST', '/upload/image', true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status >= 200 && request.status < 400) {
console.log('Great! The image was successfully uploaded');
} else {
console.log('upload error', request.status, request.statusText, request);
}
}
};
request.send(data);