eZIPSDK For Harmony

  • 思澈 鸿蒙 eZipSDK

1.集成

  • 使用 ohpm 以安装 @sifli/ezipsdk

ohpm install @sifli/ezipsdk

oh-package.json5指定版本号

"@sifli/ezipsdk": "2.5.5" 

2.接口定义

  • png/gif

export class SFBoardType {
  /**
   * chip 55x
   */
  static readonly SF_BOARD_TYPE_55X: number = 0;
  /**
   * chip 56x
   */
  static readonly SF_BOARD_TYPE_56X: number = 1;
  /**
   * chip 52X
   */
  static readonly SF_BOARD_TYPE_52X: number = 2;
  /**
   * chip 57x
   */
  static readonly SF_BOARD_TYPE_57X: number = 3;
  /**
   * chip 58x
   */
  static readonly SF_BOARD_TYPE_58X: number = 4;

  static isValidBoardType(boardType: number): boolean {
    return boardType >= 0 && boardType <= SFBoardType.SF_BOARD_TYPE_58X;
  }
}
 /**
   * transform png data to ezip bin, support gif to apng
   * @param pngData png or gif data
   * @param colorType color type as below: rgb565, rgb565A, rbg888, rgb888A
   * @param ezip_color_type
   * 0 keep original alpha channel
   * 1 no alpha channel
   * @param ezip_bin_type
   * set 0 to support rotation
   * set 1 for no rotation
   * @param boardType @see SFBoardType
   * @return ezip or apng result, null,exception for fail
   */
  static pngToEzip(pngData: Uint8Array, colorType: string, ezip_color_type: number, ezip_bin_type: number,
    boardType: number): Uint8Array
  • 序列帧

  /**
   * Convert a set of png images
   * @param pngData png data as arraylist, will be converted in the order of the images in the arraylist
   * @param colorType color type as below: rgb565, rgb565A, rbg888, rgb888A
   * @param ezip_color_type
   * 0 keep original alpha channel
   * 1 no alpha channel
   * @param ezip_bin_type
   * set 0 to support rotation
   * set 1 for no rotation
   * @param boardType @see SFBoardType
   * @param interval 动画间隔 0 默认间隔
   * @return ezip or apng result, null for fail
   */
  public static pngToEzipSequence(pngData: ArrayList<Uint8Array>, colorType: string,
    ezip_color_type: number, ezip_bin_type: number, boardType: number, interval: number): Uint8Array 
  • 设置lvgl版本

  /**
   * 设置lvgl version
   * @param lvglVersion 7/8/9
   * */
  public static setLvglVersion(lvglVersion:number):void
  • gzip

 /**
   * gzip 数据压缩
   * @param inData 输入原始数据
   * @return gzip数据,返回null失败 没有header和length,不需要做偏移
   * */
  public static gzipWithData(inData: Uint8Array): Uint8Array

3.使用

 const pngData: Uint8Array = this.getPngData();
 let binArray =  SifliEzipUtil.pngToEzip(pngData, "RGB565A", 0, 1, 1);