1/* 2 * Copyright (c) 2022-2024 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import Logger from '../../utils/Logger'; 17import FileManager from '../FileManager'; 18import userFileManager from '@ohos.filemanagement.userFileManager'; 19 20/** 21 * 缩略图组件,组件构建时,需传入fileAsset对象,组件会处理该对象,生成缩略图组件 22 * 示例:ThumbnailImage({ fileAsset: this.fileListItem }) 23 */ 24@Component 25export default struct ThumbnailImage { 26 @State thumbnail: PixelMap | null = null; 27 private fileAsset?: userFileManager.FileAsset; 28 29 async aboutToAppear() { 30 if (this.fileAsset == undefined) { 31 Logger.error('fileAsset undefined'); 32 return 33 } 34 this.thumbnail = await FileManager.getThumbnail(this.fileAsset); 35 } 36 37 build() { 38 Image(this.thumbnail == undefined ? $r('app.media.default_document') : this.thumbnail) 39 .objectFit(ImageFit.Fill) 40 } 41} 42