• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2 * Copyright (c) 2022 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 type { Releasable } from '../../common/Releasable';
17import image from '@ohos.multimedia.image';
18
19/**
20 * Thumbnail, view layer, data encapsulation
21 */
22export class Thumbnail implements Releasable {
23  /**
24   * url
25   */
26  readonly url: string = '';
27
28  /**
29   * pixelMap
30   */
31  pixelMap?: any = undefined;
32
33  /**
34   * width
35   */
36  width?: number = 0;
37
38  /**
39   * height
40   */
41  height?: number = 0;
42
43  constructor(url?: string, pixelMap?: image.PixelMap, width?: number, height?: number) {
44    this.url = url ? url : '';
45    this.pixelMap = pixelMap ? pixelMap : undefined;
46    this.width = width;
47    this.height = height;
48  }
49
50  /**
51   * release source
52   */
53  release(): void {
54    if (this.pixelMap != null && this.pixelMap != undefined) {
55      this.pixelMap.release();
56    }
57    this.width = 0;
58    this.height = 0;
59  }
60}