/// <summary> /// 이미지 저장 /// イメージ保存 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> async void ImageSave(object sender, EventArgs e) { var result = await cropView.GetImageAsJpegAsync(); byte[] vs = null; //stream을 byte로 변환 //streamをbyteに変換 using (var ms = new MemoryStream()) { result.CopyTo(ms); vs = ms.ToArray(); result.Dispose(); ms.Dispose(); } //로컬 저장소에 저장 //ロカールに保存 DependencyService.Get <Extension.ISaveAndLoad>().SaveImage(_profilePath, vs); //임시로 저장한 이미지 삭제 //臨時に保存したイメージ削除 DependencyService.Get <Extension.ISaveAndLoad>().DeleteImage(App.tempImage); //현재 창 끔 //今のページを閉じる await PageService.Default.PopAsync(); //이미지를 저장 //イメージをS3に保存 HttpUsersImagesAccess imagesAccess = new HttpUsersImagesAccess((uint)Application.Current.Properties[App.userId]); var b64string = Convert.ToBase64String(vs); var temp2 = new { image_byte = b64string }; var data = JsonConvert.SerializeObject(temp2); try { await imagesAccess.HttpPostAsync(data); } catch { //로컬라이즈 //이미지 업로드 실패하면 경고창 띄움 그리고 저장한 이미지 로컬저장소에서 삭제 //アップロードを失敗すると警告そのあとローカルに保存したイメージ削除 await PageService.Default.DisplayAlert("업로드 실패", "이미지를 업로드 실패하였습니다.", "확인"); DependencyService.Get <Extension.ISaveAndLoad>().DeleteImage(_profilePath); } }
public async Task <ImageSource> GetProfileImage(uint userId) { HttpUsersImagesAccess imagesAccess = new HttpUsersImagesAccess(userId); var data = await imagesAccess.HttpGetAsync(); ImageSource image; if (data == null) { image = ImageSource.FromFile("image_default_profile.png"); } else { image = ImageSource.FromStream(() => data); } return(image); }