Acesso negado ao salvar a imagem no UWP. Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED))
Estou trabalhando no aplicativo universal do Windows no Windows 10 SDK para desenhar retângulos nos rostos reconhecidos na imagem.
Estou usando o Win2D para editar as imagens e desenhar um retângulo. Consigo ler arquivos da biblioteca de Imagens, mas quando tento salvar a imagem após a edição, ocorre o seguinte erro:
Acesso negado. (Exceção de HRESULT: 0x80070005 (E_ACCESSDENIED))
A seguir, é o método que eu usei para desenhar um retângulo na imagem:
private async void DrawRect()
{
CanvasDevice device = CanvasDevice.GetSharedDevice();
CanvasBitmap bitmap = null;
CanvasRenderTarget offscreen = null;
Windows.Storage.StorageFile photofile = await KnownFolders.PicturesLibrary.GetFileAsync("image.jpg");
if(photofile != null)
{
using (var stream = await photofile.OpenReadAsync())
{
bitmap = await CanvasBitmap.LoadAsync(device, stream);
}
}
if(bitmap != null)
{
offscreen = new CanvasRenderTarget(device, bitmap.SizeInPixels.Width, bitmap.SizeInPixels.Height, 96);
using (var ds = offscreen.CreateDrawingSession())
{
ds.Clear(Colors.Transparent);
ds.DrawImage(bitmap);
ds.DrawRectangle(25, 35, 270, 352, Colors.Blue,4);
}
var photoFile = await KnownFolders.PicturesLibrary.CreateFileAsync("image2.jpg", CreationCollisionOption.ReplaceExisting);
if (photofile != null)
{
await offscreen.SaveAsync(photofile.Path);
}
//await offscreen.SaveAsync(photoFile.Path);*/
}
}
A exceção é lançada na última linha offscreen.SaveAsync.
O rastreamento de pilha para o erro acima é:
em System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess (tarefa de tarefa) em System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification (tarefa de tarefa) em System.Runtime.CompilerServices.TaskAwaiter.GetResultField (Identificar).
Eu configurei as permissões para acessar as pastas de imagens no arquivo manifesto do aplicativo.
Preciso definir algumas permissões adicionais para salvar a imagem no disco.
O mesmo erro ocorre quando tentei salvar a imagem em qualquer outro local.