63 lines
1.4 KiB
JavaScript
63 lines
1.4 KiB
JavaScript
OV.ArrayBufferToUtf8String = function (buffer)
|
|
{
|
|
let decoder = new TextDecoder ('utf-8');
|
|
return decoder.decode (buffer);
|
|
};
|
|
|
|
OV.ArrayBufferToAsciiString = function (buffer)
|
|
{
|
|
let text = '';
|
|
let bufferView = new Uint8Array (buffer);
|
|
for (let i = 0; i < bufferView.byteLength; i++) {
|
|
text += String.fromCharCode (bufferView[i]);
|
|
}
|
|
return text;
|
|
};
|
|
|
|
OV.AsciiStringToArrayBuffer = function (str)
|
|
{
|
|
let buffer = new ArrayBuffer (str.length);
|
|
let bufferView = new Uint8Array (buffer);
|
|
for (let i = 0; i < str.length; i++) {
|
|
bufferView[i] = str.charCodeAt (i);
|
|
}
|
|
return buffer;
|
|
};
|
|
|
|
OV.Utf8StringToArrayBuffer = function (str)
|
|
{
|
|
let encoder = new TextEncoder ();
|
|
return encoder.encode (str);
|
|
};
|
|
|
|
OV.Base64DataURIToArrayBuffer = function (uri)
|
|
{
|
|
let dataPrefix = 'data:';
|
|
if (!uri.startsWith (dataPrefix)) {
|
|
return null;
|
|
}
|
|
|
|
let mimeSeparator = uri.indexOf (';');
|
|
if (mimeSeparator === -1) {
|
|
return null;
|
|
}
|
|
|
|
let bufferSeparator = uri.indexOf (',');
|
|
if (bufferSeparator === -1) {
|
|
return null;
|
|
}
|
|
|
|
let mimeType = uri.substr (dataPrefix.length, mimeSeparator - 5);
|
|
let base64String = atob (uri.substr (bufferSeparator + 1));
|
|
let buffer = new ArrayBuffer (base64String.length);
|
|
let bufferView = new Uint8Array (buffer);
|
|
for (let i = 0; i < base64String.length; i++) {
|
|
bufferView[i] = base64String.charCodeAt (i);
|
|
}
|
|
|
|
return {
|
|
mimeType : mimeType,
|
|
buffer : buffer
|
|
};
|
|
};
|