HarmonyOS 鸿蒙Next 5.0 arkts怎么屏幕截图

发布于 1周前 作者 songsunli 来自 鸿蒙OS

HarmonyOS 鸿蒙Next 5.0 arkts怎么屏幕截图 初学者 要做屏幕截图功能,还要设置尺寸

10 回复

// xxx.ets import window from ‘@ohos.window’; import photoAccessHelper from ‘@ohos.file.photoAccessHelper’; import fileIo from ‘@ohos.file.fs’; import { image } from ‘@kit.ImageKit’;

@Entry @Component struct SnapshotExample { @State image: PixelMap | ResourceStr = $r(‘app.media.icon’);

build() { Column() { Text(‘截图测试’) .fontColor(Color.Blue) .fontSize(20) Image(this.image) .width(‘50%’) .height(‘50%’) .objectFit(ImageFit.Contain) .margin({top:20,bottom:20}) .backgroundColor(Color.Gray)

  SaveButton({ text: SaveDescription.SAVE_IMAGE, icon: SaveIconStyle.LINES })
    .onClick(async (event: ClickEvent, result: SaveButtonOnClickResult) => {
      if (result == SaveButtonOnClickResult.SUCCESS) {

        let myWindow = await window.getLastWindow(getContext(this));
        let snapshot = await myWindow.snapshot();

        try {
          const context = getContext(this);
          let helper = photoAccessHelper.getPhotoAccessHelper(context);
          // onClick触发后10秒内通过createAsset接口创建图片文件,10秒后createAsset权限收回。
          let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
          // 使用uri打开文件,可以持续写入内容,写入过程不受时间限制
          let file = fileIo.openSync(uri, fileIo.OpenMode.READ_WRITE | fileIo.OpenMode.CREATE);

          let array = await this.pixelMapToArray(snapshot);
          // 写入文件
          fileIo.writeSync(file.fd, array);
          // 关闭文件
          fileIo.closeSync(file);
        } catch (error) {
          console.error(" error is " + JSON.stringify(error));
        }
      }
    })
}
.width('100%')
.justifyContent(FlexAlign.Center)
.height('100%')
.backgroundColor(0xDCDCDC)
.padding({ top: 5 })

}

async pixelMapToArray(pixelMap: PixelMap) { const imageImagePacker: image.ImagePacker = image.createImagePacker() let packOpts: image.PackingOption = { format: “image/jpeg”, quality: 100 }

return await imageImagePacker.packing(pixelMap, packOpts)

} }

更多关于HarmonyOS 鸿蒙Next 5.0 arkts怎么屏幕截图的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


姓名

张三

职位

软件工程师

基本信息

Alt text

请问你一下,你会把jpeg格式的图片转成RGB格式的吗?

项目名称

项目描述

这有一个示例项目。

  • 技术栈
    • HTML
    • CSS
    • JavaScript

基本信息

这段文字将被移除。

姓名

张三

职位

软件工程师

基本信息

  • 所在地:北京市
  • 工作年限:5年
  • 毕业院校:清华大学

技能

  • Python
  • Java
  • C++

项目名称

这是项目的基本描述。

  • 状态:已完成
  • 分类:开发
  • 语言:Python
  • 简介
    • 开发者:张三
    • 创建时间:2023-01-01
    • 联系方式:点击这里

let windowClass: window.Window | undefined = undefined;

// 获取当前应用内最上层的子窗口,若无应用子窗口,则返回应用主窗口
let window = window.getLastWindow(getContext(this));
window.then((data) => {
  windowClass = data;

  // 屏幕截图
  let snapshot= windowClass.snapshot()
}

姓名

张三

职位

软件工程师

所在地

北京市

个人简介

资深IT专家,拥有超过10年的软件开发经验。

技能

  • Python
  • Java
  • C++
  • JavaScript

在HarmonyOS鸿蒙Next 5.0系统中,arkts(ArkUI TypeScript)环境下进行屏幕截图的操作并不直接依赖于arkts本身,而是依赖于系统级的API或工具。以下是针对如何在HarmonyOS鸿蒙系统中进行屏幕截图的简要说明:

在HarmonyOS设备上,屏幕截图通常可以通过以下几种方式实现:

  1. 快捷键截图:大多数HarmonyOS设备支持通过同时按下电源键和音量减小键来进行屏幕截图。这是最直接且常用的截图方式。

  2. 通知栏截图按钮:从屏幕顶部下滑打开通知栏,通常可以在快捷设置中找到屏幕截图的按钮,点击即可截图。

  3. 指关节截图:部分HarmonyOS设备支持指关节截图功能,即用指关节双击屏幕即可进行截图。

  4. 第三方应用:你也可以通过安装第三方截图应用来实现更高级的截图功能,如滚动截图、长截图等。

请注意,以上方法均适用于HarmonyOS系统层面,与arkts开发环境无直接关系。如果你是在arkts应用中需要实现某种截图功能,可能需要调用系统提供的截图API或通过其他方式触发系统截图功能。

如果问题依旧没法解决请联系官网客服,官网地址是:https://www.itying.com/category-93-b0.html

回到顶部