我正在开发VS2015 cordova应用程序。我想要将图像的基本64字符串发送到另一台服务器。当我从图库中获取图像并将其转换为base64string时,出现问题。我获得了base64string成功,但是当我抛弃它时,我总是会得到黑色的图像。这里是我的代码:在JQuery中将图像转换为base64string
function onPhotoURISuccess(imageURI) {
var largeImage = document.getElementById('smallImage');
largeImage.style.display = 'block';
largeImage.src = imageURI;
basestrg = encodeImageUri(imageURI);
}
function getPhoto(source) {
navigator.camera.getPicture(onPhotoURISuccess, onFail, {
destinationType: Camera.DestinationType.NATIVE_URI, mediaType: Camera.MediaType.Photo,
sourceType: source
});
}
function encodeImageUri(imageUri) {
var c = document.createElement('canvas');
var ctx = c.getContext("2d");
var img = new Image();
img.onload = function() {
c.width = this.width;
c.height = this.height;
ctx.drawImage(img, 0, 0);
};
img.src = imageUri;
var dataURL = c.toDataURL("image/jpeg");
return dataURL;
}
请指教。
如果不确定添加它,检查base64字符串是否以标识符开头。 – seahorsepip
您使用异步回调在'onload'上绘制图像。所以当你建立'dataUrl'时,图像下面几行还没有绘制出来 – Paolo
@seahorsepip标识符是什么? – prime