鸿蒙调用手机摄像头以及手机本地图库

首先要导入内置的模块,然后我们可以去调用手机的摄像头以及本地图库(必须是真机才可以)

接下来就尽情的复制粘贴吧  

struct PicTure {
  @State message :string = 'hello'
  @State uri :string = ''
  private context = getContext(this) as common.UIAbilityContext

  build(){
    Row(){
      Column(){
        Button('拍照')
          .onClick(async ()=>{
            let wantObj = {
              deviceId:"",
              action:wantConstant.Action.ACTION_IMAGE_CAPTURE
            }
            let data = await this.context.startAbilityForResult(wantObj)
            console.log(data.want.uri)
            this.uri = data.want.uri
          })
        Button('选择图片')
          .onClick(async ()=>{
           let phoToSelectOptions = new picker.PhotoSelectOptions()
            phoToSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE
            phoToSelectOptions.maxSelectNumber = 1
            let photoPicker = new picker.PhotoViewPicker()
            let res = await photoPicker.select(phoToSelectOptions)
            console.log(res.photoUris[0])

            this.uri = res.photoUris[0]
          })
        Image(this.uri).size({width:200})
      }
      .width("100%")
    }
    .height("100%")
  }
}

Snapshot526控件 授权后抓拍到的图片以时间为基准自动命令,未授权再无法抓拍图片。 保存的图片格式为bmp格式。 包含包“Snapshot526.h” 并在stdafx.h中或调用的模块中加入 #pragma comment(lib, "Camera526.lib") 然后在操作开始摄像头抓拍操作事件中 CSnapshot526 snapshot; CString strFileName=L"",strFilePath; snapshot.SetGrantUserName(L"用户名"); //设置授权用户 snapshot.SetGrantUserKey(L"授权号"); //设置授权号 snapshot.SetCameraWindowSize(520,460); //设置视频窗口大小 snapshot.SetSaveImagePath(L"debug"); //设置抓拍图片保存路径 if(snapshot.ShowCameraDlg()) { strFileName = snapshot.GetPhotoFileName(); //获取抓拍图片文件名 SetDlgItemText(IDC_STNAME,strFileName); strFilePath = snapshot.GetPhotoFilePath(); //获取图片路径 if(!strFilePath.IsEmpty()) { //显示抓拍到的图片 HDC hSrcDC; HDC hDesDC; HBITMAP hBitmap; BITMAP bm; CRect rect; Sleep(100); hDesDC = m_stPicture.GetDC()->m_hDC; hSrcDC = CreateCompatibleDC(hDesDC); hBitmap=(HBITMAP)LoadImage(AfxGetInstanceHandle(), strFilePath, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION); //m_stPicture.SetBitmap(hBitmap); GetObject(hBitmap, sizeof(BITMAP), &bm); SelectObject(hSrcDC, hBitmap); m_stPicture.GetClientRect(&rect); ::SetStretchBltMode(hDesDC, COLORONCOLOR); ::StretchBlt(hDesDC, rect.left, rect.top, rect.right, rect.bottom, hSrcDC, 0, 0, bm.bmWidth, bm.bmHeight,+SRCCOPY); m_stPicture.InvalidateRect(rect); } } 注意,需要把文件Snapshot526.h拷到工程中并加入,另需要Camera526.dll和Camera526.lib文件。 具体查看示例
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值