MicrosoftDocs / winrt-api

WinRT reference content for developing Microsoft Universal Windows Platform (UWP) apps
Creative Commons Attribution 4.0 International
227 stars 493 forks source link

CameraCaptureUI.CaptureFileAsync() is returning a corrupt StorageFile if user selects "Save as a copy" option on the OS dialog #2435

Open mimtiaz3555 opened 7 months ago

mimtiaz3555 commented 7 months ago

When using CameraCaptureUI in a UWP app in Windows 11 23H2, if cropping is allowed as follows:

CameraCaptureUI captureUI = new CameraCaptureUI();

captureUI.PhotoSettings.Format = CameraCaptureUIPhotoFormat.Jpeg;

captureUI.PhotoSettings.CroppedSizeInPixels = new Size(200, 200);

StorageFile photo = await captureUI.CaptureFileAsync(CameraCaptureUIMode.Photo);

The StorageFile returned from the CaptureFileAsync() call is corrupt when user selects Save as a copy instead of Save after performing the OS Photos dialog popup that is part of the CaptureFileAsync() call. It is 0 bytes in size.

Why is the image coming back corrupt? And is there a way of checking where the user saved the edited copy?

The API is using the MS Photos app to let the user save as a copy as shown below:

image

The issue is verified as shown in the attached Microsoft FAQ link: https://learn.microsoft.com/en-us/answers/questions/1454858/cameracaptureui-capturefileasync()-is-returning-a

SleepyDevelops commented 4 months ago

Any updates on this? The only fix we found was to disable cropping, which isn't really a solution.