Reputation: 21
I am trying to convert image into byte array. Here is my code which returns base64String of that image:
$scope.imageAdded = function (files) {
angular.forEach(files,
function (flowFile, i) {
var fileReader = new FileReader();
fileReader.onload = function (event) {
var uri = event.target.result;
$scope.imageStrings[i] = uri;
};
fileReader.readAsDataURL(flowFile.file);
event.preventDefault(); //prevent file from uploading
});
}
Any kind of help will be appreciated
Upvotes: 1
Views: 534
Reputation: 37855
$scope.imageAdded = async function imageAdded (flowFiles) {
const arrayBuffer = await flowFiles[0].file.arrayBuffer()
const uint8array = new Uint8Array(arrayBuffer)
}
Upvotes: 1
Reputation: 193
Try this
$scope.base64toByteArray = function(b64Data, contentType = '', sliceSize = 512) => {
const byteCharacters = atob(b64Data);
const byteArrays = [];
for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {
const slice = byteCharacters.slice(offset, offset + sliceSize);
const byteNumbers = new Array(slice.length);
for (let i = 0; i < slice.length; i++) {
byteNumbers[i] = slice.charCodeAt(i);
}
const byteArray = new Uint8Array(byteNumbers);
byteArrays.push(byteArray);
}
return byteArrays;
}
Upvotes: 1