【发布时间】:2016-02-13 21:44:42
【问题描述】:
我正在开发 VS2015 cordova 应用程序。我想将图像的 base 64 字符串发送到另一台服务器。当我从图库中获取图像并将其转换为 base64string 时出现问题。我成功获得了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字符串是否以标识符开头,如果不确定添加它。
-
您使用异步回调在
onload绘制图像。所以当你建立dataUrl时,图像下方的几行还没有绘制出来 -
@seahorsepip 什么是标识符?
-
@Paolo 请解释我应该怎么做
-
原图是
typejpeg吗?
标签: javascript jquery cordova visual-studio-cordova