protected async virtual void imageSelect() { this.IsBusy = true; await CrossMedia.Current.Initialize(); if (!CrossMedia.Current.IsTakePhotoSupported) { await dialogService.DisplayAlertAsync("No Camera", "No camera available.", "OK"); this.IsBusy = false; return; } var file = await CrossMedia.Current.PickPhotoAsync(new Plugin.Media.Abstractions.PickMediaOptions { PhotoSize = Plugin.Media.Abstractions.PhotoSize.MaxWidthHeight, MaxWidthHeight = 500 }); if (file == null) { this.IsBusy = false; return; } this.Group.GroupImage = CustomImageSource.FromByteArray(() => { var stream = file.GetStream(); var byteArray = Utils.ReadStram(stream); file.Dispose(); return(byteArray); }); this.IsBusy = false; }
private static async Task setImageSourceFromBlob(GroupItem item) { var buffer = await downloadFile(item.Id, container_name_group); // replace if not defference image if (buffer != null && !buffer.EqualArray(item.GroupImage.StreamByte)) { item.GroupImage = CustomImageSource.FromByteArray(() => { return(buffer); }); // save as loadfile await saveImageByteToLocal(item.Id, container_name_group, buffer); } }
public static async Task SetImageSource(GroupItem item) { ///// set from local var buffer = await getImageByteFromLocal(item.Id, container_name_group); if (buffer != null) { item.GroupImage = CustomImageSource.FromByteArray(() => { return(buffer); }); } ///// set from Azure blob (not wait) setImageSourceFromBlob(item); }