1/* 2 * Copyright (c) 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 testNapi from 'libentry.so'; 17import { image } from '@kit.ImageKit'; 18import { router } from '@kit.ArkUI'; 19 20@Entry 21@Component 22struct EncodeImages { 23 @State oldPixelMap: PixelMap | undefined = undefined; 24 @State newPixelMap: PixelMap | undefined = undefined; 25 26 aboutToAppear() { 27 // 调用自定义的getSyncPixelMap接口,获取pixelMap 28 this.oldPixelMap = testNapi.getSyncPixelMap(getContext(this).resourceManager, 'example.jpg'); 29 } 30 31 build() { 32 Row() { 33 Column({ space: 30 }) { 34 Image(this.oldPixelMap) 35 .width(100) 36 .height(100) 37 Button($r('app.string.Encode_Images')) 38 .onClick(() => { 39 testNapi.EncodeImagesToFile(this.oldPixelMap); 40 this.getSyncPixelMap(); 41 }); 42 if (this.newPixelMap != undefined) { 43 Image(this.newPixelMap) 44 .width(100) 45 .height(100) 46 } 47 Button($r('app.string.Go_Back')) 48 .onClick(() => { 49 router.back(); 50 }); 51 } 52 .width('100%') 53 } 54 .height('100%') 55 } 56 57 private async getSyncPixelMap() { 58 let filePath = getContext().cacheDir + '/test.jpg'; 59 const imageSource: image.ImageSource = image.createImageSource(filePath); 60 this.newPixelMap = await imageSource.createPixelMap(); 61 } 62}