我想你是保存圖像,這就是爲什麼只有圖像被保存,而不是圖像上的圓圈。爲了保存編輯圖像的圓形,你需要保存CANVAS的兒童
假設你非常熟悉IRandomAccesStream和編碼器類,我在這裏給我的代碼,我有時使用回100%。在代碼中,我還提供了FileSavePicker的功能,用戶通過該功能將圖片保存在其所需的位置。在這裏,可以是帆布的名稱
private async void save_Click(object sender, RoutedEventArgs e)
{
if (can != null)
{
RenderTargetBitmap renderTargetBitmap = new RenderTargetBitmap();
await renderTargetBitmap.RenderAsync(can);
FileSavePicker picker = new FileSavePicker();
picker.FileTypeChoices.Add("PNG Image",new string[]{".png"});
StorageFile file = await picker.PickSaveFileAsync();
if (file != null)
{
var pixels = await renderTargetBitmap.GetPixelsAsync();
using (IRandomAccessStream stream = await file.OpenAsync(FileAccessMode.ReadWrite))
{
var encoder = await BitmapEncoder.CreateAsync(BitmapEncoder.PngEncoderId, stream);
byte[] bytes = pixels.ToArray();
encoder.SetPixelData(BitmapPixelFormat.Bgra8, BitmapAlphaMode.Ignore, (uint)can.Width, (uint)can.Height, 96, 96, bytes);
await encoder.FlushAsync();
}
}
}
}