private void bw_CameraSaveImageCompleted(object sender, System.ComponentModel.RunWorkerCompletedEventArgs e) { CameraHolder holder = (CameraHolder)e.Result; Graphics.HideActivitySpinner(holder.LoadingView); if (!string.IsNullOrWhiteSpace(holder.ErrorMsg)) { Controls.OkDialog("Error Saving Image", "There was an error saving the image from the camera. The error was: " + holder.ErrorMsg); } LoadImagesFromDatabase(); DisplayThumbnail(holder.FileNumber); }
private void bw_CameraSaveImage(object sender, System.ComponentModel.DoWorkEventArgs e) { CameraHolder holder = (CameraHolder)e.Argument; string fileName = Path.GetFileNameWithoutExtension(Path.GetRandomFileName()); string filePath = Path.Combine(imagePath, fileName + ".jpg"); string thumbPath = Path.Combine(imagePath, fileName + "_thumb.jpg"); NSError fileError, thumbError; try { if (!Directory.Exists(imagePath)) { Directory.CreateDirectory(imagePath); } if (File.Exists(filePath)) { File.Delete(filePath); } if (File.Exists(thumbPath)) { File.Delete(thumbPath); } using (NSData jpegData = holder.CameraImage.AsJPEG()) { jpegData.Save(filePath, NSDataWritingOptions.Atomic, out fileError); UIImage thumb = Graphics.ResizeImage(UIImage.LoadFromData(jpegData), 100f, 75f); thumb.AsJPEG().Save(thumbPath, NSDataWritingOptions.Atomic, out thumbError); if (fileError != null) { throw new Exception("Error saving image. " + fileError.ToString()); } if (thumbError != null) { throw new Exception("Error saving thumbnail. " + thumbError.ToString()); } holder.FilePath = filePath; } } catch (Exception ex) { holder.ErrorMsg = ex.Message; } e.Result = holder; }