TakePicture.ets 830 B

12345678910111213141516171819202122
  1. import { fileIo, fileUri } from '@kit.CoreFileKit';
  2. import { camera, cameraPicker as picker } from '@kit.CameraKit';
  3. export async function takePicture(context: Context) {
  4. let pathDir = context.filesDir;
  5. let fileName = `${new Date().getTime()}`
  6. let filePath = pathDir + `/${fileName}.png`
  7. fileIo.createRandomAccessFileSync(filePath, fileIo.OpenMode.CREATE);
  8. let uri = fileUri.getUriFromPath(filePath);
  9. let pickerProfile: picker.PickerProfile = {
  10. cameraPosition: camera.CameraPosition.CAMERA_POSITION_BACK,
  11. saveUri: uri
  12. };
  13. let result: picker.PickerResult =
  14. await picker.pick(getContext(), [picker.PickerMediaType.PHOTO], //(如果需要录像可以添加) picker.PickerMediaType.VIDEO
  15. pickerProfile);
  16. if (!result.resultUri) {
  17. return Promise.reject('用户未拍照')
  18. }
  19. return filePath
  20. }