42 lines
1.1 KiB
Plaintext
42 lines
1.1 KiB
Plaintext
import { util } from "@kit.ArkTS";
|
|
import { BusinessError } from "@kit.BasicServicesKit";
|
|
|
|
/**
|
|
* 将base64数据转换为arraybuffer
|
|
* @param data base64数据
|
|
* @returns Promise<ArrayBuffer>
|
|
*/
|
|
function btoa_x(data: string): ArrayBuffer {
|
|
const base64 = new util.Base64Helper();
|
|
const dataSplit = data.split(",");
|
|
const uint8Array = base64.decodeSync(dataSplit.length > 1 ? data.split(",")[1] : data);
|
|
const buffer: ArrayBuffer = uint8Array.buffer.slice(0, uint8Array.byteLength);
|
|
|
|
return buffer
|
|
}
|
|
|
|
function atob_x(data:ArrayBuffer){
|
|
const base64 = new util.Base64Helper();
|
|
const unit8data = new Uint8Array(data)
|
|
return base64.encodeToStringSync(unit8data)
|
|
}
|
|
|
|
export const base64ToArrayBuffer = (data : string) :ArrayBuffer => {
|
|
try {
|
|
return btoa_x(data)
|
|
} catch (error) {
|
|
const e = error as BusinessError;
|
|
console.error("TMUI",e.message)
|
|
return new ArrayBuffer(0)
|
|
}
|
|
}
|
|
|
|
export const arrayBufferToBase64 = (data : ArrayBuffer) : string => {
|
|
try {
|
|
return atob_x(data)
|
|
} catch (error) {
|
|
const e = error as BusinessError;
|
|
console.error("TMUI",e.message)
|
|
return ''
|
|
}
|
|
} |