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?

Answered by tenuki in 782620022

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

Accepted Answer

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

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