如何调用系统拍照并获取图片

2024-11-19 09:46:19
200次阅读
0个评论

如何调用系统拍照并获取图片

import { cameraPicker } from '@kit.CameraKit';
import { camera } from '@kit.CameraKit';
import { BusinessError } from '@ohos.base';
import { hilog } from '@kit.PerformanceAnalysisKit'


@Entry
@Component
struct ImagePickerPage {
  @State uri: Resource | string | undefined = undefined;
  private cameraPosition: Array<camera.CameraPosition> = [
    camera.CameraPosition.CAMERA_POSITION_UNSPECIFIED, camera.CameraPosition.CAMERA_POSITION_BACK,
    camera.CameraPosition.CAMERA_POSITION_FRONT
  ];
  private mediaType: Array<cameraPicker.PickerMediaType> = [
    cameraPicker.PickerMediaType.PHOTO, cameraPicker.PickerMediaType.VIDEO
  ];

  build() {
    Row() {
      Column() {
        Image(this.uri)
          .width("100%")


        Button("拍照")
          .width("80%")

          .onClick(async () => {
            try {
              let pickerProfile: cameraPicker.PickerProfile = { cameraPosition: this.cameraPosition[1] };

              let pickerResult: cameraPicker.PickerResult = await cameraPicker.pick(getContext(this),
                [this.mediaType[0]], pickerProfile);
              // Get video URI
              this.uri = pickerResult.resultUri;
              hilog.info(0x0000, ' ', "the pick pickerResult is:" + JSON.stringify(pickerResult));
            } catch (error) {
              let err = error as BusinessError;
              hilog.error(0x0000, '', `the pick call failed. error code: ${err.code}`);
            }
          })
      }
      .width("100%")
    }
    .height("100%")
  }
}

效果

image-20241119094104117

参考

@ohos.multimedia.cameraPicker (相机选择器)

备注

作者:坚果

链接:https://www.nutpi.net/

出处:https://www.arkui.club/

来源:坚果派

著作权归作者所有,禁止任何未经授权的个人或组织以任何形式将本案例集及其附属资料、创新、创意、架构设计、算法、衍生作品等用于任何商业目的、盈利活动、各类竞赛(比赛)、直播教学、录播教学、线下课程、书籍编写、教材编写、会议、培训、公益活动、项目课题、毕业设计、毕业论文、学术论文等。商业转载请联系作者获得授权,非商业转载请注明出处。否则追究相关责任。

收藏00

登录 后评论。没有帐号? 注册 一个。