What do I need to do to take 48MP photos and set the iso and exposure duration successfully?

I want to take 48MP photos and get the same iso and exposure duration as I set.

Configuration

  • Set the active AVCaptureDevice.Format to a format where supportedMaxPhotoDimensions contains the (8064, 6048) size

  • Set AVCapturePhotoOutput.maxPhotoDimensions to (8064, 6048)

  • Set if (AVCaptureDevice.isExposureModeSupported:.custom) { AVCaptureDevice.exposureMode = .custom; }

  • Set AVCaptureDevice.setExposureModeCustomWithDuration:1/20 ISO:100 completionHandler:handler

Taking a photo

  • Set AVCapturePhotoSettings.maxPhotoDimensions to (8064, 6048)

The API discussion of setExposureModeCustomWithDuration told me https://developer.apple.com/documentation/avfoundation/avcapturedevice/1624646-setexposuremodecustomwithduratio/

To ensure that the receiver's ISO and exposureDuration values are honored while in AVCaptureExposureModeCustom or AVCaptureExposureModeLocked, you must set your AVCapturePhotoSettings.photoQualityPrioritization property to AVCapturePhotoQualityPrioritizationSpeed.

But at last step, when I set AVCapturePhotoSettings.maxPhotoQualityPrioritization = .speed, the photo resolution is (4000, 3000), only 12MP, not is (8000, 6000). the iso and exposure duration on the photo are the same as what I set.

and when I set AVCapturePhotoSettings.maxPhotoQualityPrioritization = .balanced/.qulity, the photo is (8000, 6000) , but the iso and exposeure duration obtained on the photo is different from the one I set.

What do I need to do to take 48MP photos and set the iso and exposure duration successfully?

Accepted Reply

Unfortunately, this is not currently possible. See the discussion here.

  • Thanks!

Add a Comment

Replies

Unfortunately, this is not currently possible. See the discussion here.

  • Thanks!

Add a Comment