private async Task ShareEmotion(EmotionData Data) { Chart chart = new PieChart(); chart = MonthChart as PieChart; chart.IsAnimated = false; chart.Entries.ToList().ForEach(x => x.TextColor = SKColors.Purple); var bmp = new SKBitmap(500, 500); var canvas = new SKCanvas(bmp); var image = SKImage.FromPixels(bmp.PeekPixels()); chart.DrawContent(canvas, 500, 500); canvas.Save(); using (MemoryStream ms = new MemoryStream()) { image.Encode(SKEncodedImageFormat.Png, 4).AsStream().CopyTo(ms); var str = Convert.ToBase64String(ms.ToArray()); bytes = Convert.FromBase64String(str); } try { PermissionStatus status = await CrossPermissions.Current.CheckPermissionStatusAsync(Permission.Storage); if (status != PermissionStatus.Granted) { var results = await CrossPermissions.Current.RequestPermissionsAsync(new[] { Permission.Storage }); status = results[Permission.Storage]; } if (status != PermissionStatus.Granted) { return; } else { DependencyService.Get <IShare>() .ShareContent("", "AboutSelf", ImageSource.FromStream(() => new MemoryStream(bytes))); } } catch (Exception ex) { Debug.WriteLine(ex); } }