gpt4 book ai didi

javascript - 如何在javascript中对图像进行base64编码

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:45:01 24 4
gpt4 key购买 nike

我正在开发一个 phonegap 应用程序并使用 navigator.getPicture 方法来获取图像。

我获取图片的方式是:

navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
destinationType: Camera.DestinationType.FILE_URI });

function onSuccess(imageURI) {
var image = document.getElementById('myImage');
image.src = imageURI;
}

就像 phonegap 文档中的示例一样。

我希望能够使用 imageURI,然后将其转换为图像数据,以便稍后上传。 (我不想使用 phonegap 的 FileTransfer)

到目前为止我都试过了 Get image data in JavaScript?How can you encode a string to Base64 in JavaScript?

当我尝试以下操作时,

function onSuccess(imageURI) {
getBase64Image(imageURI);
}

function getBase64Image(img) {
// Create an empty canvas element
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;

// Copy the image contents to the canvas
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0);

// Get the data-URL formatted image
// Firefox supports PNG and JPEG. You could check img.src to
// guess the original format, but be aware the using "image/jpg"
// will re-encode the image.
var dataURL = canvas.toDataURL("image/png");

console.log(dataURL); //here is where I get 'data:,'

return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}

并在返回前打印dataURL。我只是得到 data:, 作为内容。

对我做错了什么有什么想法吗?

最佳答案

那么您可以尝试将其获取为 DATA_URL。当图像转换为 Base64 字符串时,您可能会遇到内存不足错误,因此您的情况可能会有所不同。

navigator.camera.getPicture(onSuccess, onFail, { quality: 50, 
destinationType: Camera.DestinationType.DATA_URL });

function onSuccess(imageURI) {
var image = document.getElementById('myImage');
image.src = imageURI;
}

或者您可以使用 FileReader.readAsDataURL() .

canvas.toDataURL 方法未在早期版本的 Android 上实现。

关于javascript - 如何在javascript中对图像进行base64编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13260588/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com