步骤一:获取图片。
方法一:通过沙箱路径获取:
const context : Context = getContext(this);
const filePath : string = context.cacheDir + '/test.jpg';
方法二:通过沙箱路径获取图片的文件描述符:
const context = getContext(this);
const filePath = context.cacheDir + '/test.jpg';
const file : fs.File = fs.openSync(filePath, fs.OpenMode.READ_WRITE);
const fd : number = file?.fd;
方法三:通过资源管理器获取资源文件的ArrayBuffer:
const context : Context = getContext(this);
// 获取resourceManager资源管理器
const resourceMgr : resourceManager.ResourceManager = context.resourceManager;
resourceMgr.getRawFileContent('test.jpg').then((fileData : Uint8Array) => {
console.log("Succeeded in getting RawFileContent")
// 获取图片的ArrayBuffer
const buffer = fileData.buffer.slice(0);
}).catch((err : BusinessError) => {
console.error("Failed to get RawFileContent")
});
方法四:通过资源管理器获取资源文件的RawFileDescriptor:
const context : Context = getContext(this);
// 获取resourceManager资源管理器
const resourceMgr : resourceManager.ResourceManager = context.resourceManager;
resourceMgr.getRawFd('test.jpg').then((rawFileDescriptor : resourceManager.RawFileDescriptor) => {
console.log("Succeeded in getting resourceManager")
}).catch((err : BusinessError) => {
console.error("Failed to get resourceManager")
});
步骤二:创建imageSource。
方法一:通过沙箱路径创建ImageSource。沙箱路径可以通过步骤2的方法一获取。
// path为已获得的沙箱路径
const imageSource : image.ImageSource = image.createImageSource(filePath);
方法二:通过文件描述符fd创建ImageSource。文件描述符可以通过步骤2的方法二获取。
// fd为已获得的文件描述符