* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import mediaLibrary from '@ohos.multimedia.mediaLibrary'
import Logger from './Logger'
const TAG: string = 'ImageData'
export class ImageData {
async getAllImage() {
let media = mediaLibrary.getMediaLibrary(globalThis.abilityContext)
let fileKey = mediaLibrary.FileKey
let mediaFetchOptions = {
selections: `${fileKey.MEDIA_TYPE}=?`,
selectionArgs: [mediaLibrary.MediaType.IMAGE.toString()],
}
let fetchFileResult = await media.getFileAssets(mediaFetchOptions)
Logger.info(TAG, `getAllImg getFileAssetsFromType fetchFileResult.count = ${fetchFileResult.getCount()}`)
let fileAssets = await fetchFileResult.getAllObject()
Logger.info(TAG, `getAllImg result = ${JSON.stringify(fileAssets)}`)
for (let index = 0; index < fileAssets.length; index++) {
Logger.info(TAG, `fileAssets ${index} uri = ${fileAssets[index].uri}`)
}
await media.release()
return fileAssets
}
async getImageFd(uri: string) {
Logger.info(TAG, `getImageFd uri = ${uri}`)
let media = mediaLibrary.getMediaLibrary(globalThis.abilityContext)
let fetchOp = {
selections: '',
selectionArgs: [],
uri: uri
}
let fetchFileResult = await media.getFileAssets(fetchOp)
Logger.info(TAG, `getImageFd fetchFileResult.getCount() = ${fetchFileResult.getCount()}`)
let fileAsset = await fetchFileResult.getFirstObject()
Logger.info(TAG, `getImageFd fileAsset.uri = ${fileAsset.uri}`)
await media.release()
return await fileAsset.open('r')
}
}
export default new ImageData()