• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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}