public static void WriteDefaultFaceCalculation(PointF[] shape) { var calculatedFaceAlignment = GetFaceCalculationsFromShape(shape); using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var faceCalculations = db.FaceCalculations.FirstOrDefault(); faceCalculations._0_TamplaStanga = calculatedFaceAlignment._0_TamplaStanga; faceCalculations._1_TamplaDreapta = calculatedFaceAlignment._1_TamplaDreapta; faceCalculations._2_Barbie = calculatedFaceAlignment._2_Barbie; faceCalculations._3_SpranceanaDreapta = calculatedFaceAlignment._3_SpranceanaDreapta; faceCalculations._4_ArieOchiStang = calculatedFaceAlignment._4_ArieOchiStang; faceCalculations._5_ArieOchiDrept = calculatedFaceAlignment._5_ArieOchiDrept; faceCalculations._6_MarimeOchiStang = calculatedFaceAlignment._6_MarimeOchiStang; faceCalculations._7_MarimeOchiDrept = calculatedFaceAlignment._7_MarimeOchiDrept; faceCalculations._8_InaltimeGura = calculatedFaceAlignment._8_InaltimeGura; faceCalculations._9_Unghi_60_67 = calculatedFaceAlignment._9_Unghi_60_67; faceCalculations._10_Unghi_64_65 = calculatedFaceAlignment._10_Unghi_64_65; faceCalculations._11_LungimeGuraExterior = calculatedFaceAlignment._11_LungimeGuraExterior; faceCalculations._12_UnghiNasStanga = calculatedFaceAlignment._12_UnghiNasStanga; faceCalculations._13_UnghiNasDreapta = calculatedFaceAlignment._13_UnghiNasDreapta; faceCalculations._14_ArieFata = calculatedFaceAlignment._14_ArieFata; faceCalculations._15_ArieGura = calculatedFaceAlignment._15_ArieGura; db.SubmitChanges(); } }
private void cam_CaptureImageAvailable(object sender, ContentReadyEventArgs e) { Dispatcher.BeginInvoke(() => { var bmp = new BitmapImage(); bmp.SetSource(e.ImageStream); var writeableBmp = BitmapFactory.New(bmp.PixelWidth, bmp.PixelHeight).FromStream(e.ImageStream); imageBitmap = WriteableBitmapHelpers.TransformBitmapByCameraTypeAndPageOrientation( writeableBmp, cam.CameraType, Orientation); var randomFileName = string.Format("{0}.jpg", Guid.NewGuid().ToString()); LocalImagesHelper.WriteImageToIsolatedStorage(randomFileName, imageBitmap); using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { db.SavedPictures.InsertOnSubmit(new PictureItem { Name = randomFileName, Width = imageBitmap.PixelWidth, Height = imageBitmap.PixelHeight }); db.SubmitChanges(); } e.ImageStream.Close(); }); }
private async Task startHardWork() { worker = new BackgroundWorker(); worker.DoWork += (sender, arg) => { FaceSdkHelper.Initialize(); }; await worker.BeginWorkerAsync(); var sdkImg = ImageConverter.SystemToSdk(imageBitmap); var result = FaceSdkHelper.Detect(sdkImg); if (SdkHelper.foundFace == true && SdkHelper.results.Count == 1) { var shape = SdkHelper.results.FirstOrDefault(); var defaultFaceCalculations = Calculus.ReadDefaultFaceCalculations(); var array = FaceCalculationsHelpers.FromFaceCalculationsToVector(defaultFaceCalculations); var calculatedFaceCalculations = Calculus.GetFaceCalculationsFromShape(shape); var resultArray = FaceCalculationsHelpers.FromFaceCalculationsToVector(calculatedFaceCalculations); var conditions = new Conditions(); var resultFromCalculus = conditions.GetLevelVerifierFunction(Level).Invoke(array, resultArray); if (resultFromCalculus != 0) { using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var passedLevels = db.Settings.FirstOrDefault()._16_PassedLevels; db.Settings.FirstOrDefault()._16_PassedLevels = Math.Max(passedLevels, Level); var level = db.Levels.FirstOrDefault(t => t.Level == Level); level.Stars = Math.Max(resultFromCalculus, level.Stars); db.SubmitChanges(); } MessageBox.Show("Level passed. You won " + resultFromCalculus + " point" + (resultFromCalculus > 1 ? "s!" : "!")); } else { InGameLifeHelpers.LoseLife(); MessageBox.Show("Level failed"); } } else { MessageBox.Show("Camera did not detect your face! Try again!"); } NavigationService.Navigate(new Uri(Pages.GeneralGameplay_Adventure, UriKind.RelativeOrAbsolute)); FaceSdkHelper = null; GC.Collect(); }
private void DeleteImage_Click(object sender, EventArgs e) { using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { if (isoStore.FileExists(_pictureName)) { isoStore.DeleteFile(_pictureName); } } using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var picture = db.SavedPictures.FirstOrDefault(t => t.Name == _pictureName); db.SavedPictures.DeleteOnSubmit(picture); db.SubmitChanges(); } NavigationService.GoBack(); }
private void next_Click(object sender, EventArgs e) { LocalImagesHelper.WriteImageToIsolatedStorage(Constants.DEFAULT_FACE_PHOTO, ImageSource); using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var settings = db.Settings.FirstOrDefault(); settings.DefaultImagePixelHeight = ImageSource.PixelHeight; settings.DefaultImagePixelWidth = ImageSource.PixelWidth; settings.PhoneOrientation = orientation; db.SubmitChanges(); } NavigationService.Navigate(new Uri(Pages.CreateProfile_ProfileCreated, UriKind.RelativeOrAbsolute)); }
private void Next_Click(object sender, EventArgs e) { if (PlayerName.IsNullOrEmptyOrWhiteSpace()) { MessageBox.Show("Please insert a name"); return; } using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var settings = db.Settings.FirstOrDefault(); settings.PlayerName = PlayerName; settings.Sex = GetSexType(); settings.Race = GetHumanRaceType(); db.SubmitChanges(); } NavigationService.Navigate(new Uri(Pages.CreateProfile_TakePhotoDefault, UriKind.Relative)); }
private void Next_Click(object sender, EventArgs e) { LocalImagesHelper.WriteImageToIsolatedStorage(Constants.DEFAULT_CARTOON_PHOTO, ImageSource); if (editProfile) { NavigationService.GoBack(); return; } using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var settings = db.Settings.FirstOrDefault(); settings.Initialized = true; db.SubmitChanges(); } NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute)); }
protected override async void OnNavigatedTo(NavigationEventArgs e) { if (e.NavigationMode == NavigationMode.Back) { return; } await Extensions.WaitAsync(3000); var settingsExists = false; using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var count = db.Settings.Count(); if (count == 0) { db.Settings.InsertOnSubmit(new SettingsItem { Initialized = false, LastMomentOfDeath = DateTime.Now }); db.FaceCalculations.InsertOnSubmit(new FaceCalculationsItem()); for (int i = 1; i <= Constants.AvailableLevels; i++) { db.Levels.InsertOnSubmit(new LevelItem { Level = i, Stars = 0 }); } db.SubmitChanges(); } var settings = db.Settings.FirstOrDefault(); settingsExists = settings.Initialized; } if (settingsExists) { NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute)); } else { NavigationService.Navigate(new Uri(Pages.CreateProfile_CreateProfile, UriKind.RelativeOrAbsolute)); } }
private void Next_Click(object sender, EventArgs e) { Calculus.WriteDefaultFaceCalculation(SdkHelper.results.FirstOrDefault()); using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { var settings = db.Settings.FirstOrDefault(); settings._16_PassedLevels = Constants.DefaultAvailableLevels; settings._17_SurvivalScore = 0; settings._18_MultiplayerWinScore = 0; settings._19_MultiplayerLoseScore = 0; settings._20_NumberLivesLeft = Constants.MaxLives; settings.LastMomentOfDeath = DateTime.Now; foreach (var level in db.Levels) { level.Stars = 0; } db.SubmitChanges(); } NavigationService.Navigate(new Uri(Pages.CreateProfile_CartoonCreator, UriKind.RelativeOrAbsolute)); }
private void ResetProfile_Click(object sender, EventArgs e) { var result = MessageBox.Show("Are you sure you want to reset your profile?", "Confirm", MessageBoxButton.OKCancel); switch (result) { case MessageBoxResult.OK: using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { isoStore.DeleteFile(Constants.DEFAULT_SETTINGS_FILE); isoStore.DeleteFile(Constants.DEFAULT_FACE_PHOTO); isoStore.DeleteFile(Constants.DEFAULT_CARTOON_PHOTO); using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { db.Settings.FirstOrDefault().Initialized = false; db.SubmitChanges(); } } NavigationService.Navigate(new Uri(Pages.CreateProfile_CreateProfile, UriKind.RelativeOrAbsolute)); break; } }
void startHardWork(int currentPhoto) { try { Dispatcher.BeginInvoke(delegate() { var source = new BitmapImage(); using (var isoStore = IsolatedStorageFile.GetUserStoreForApplication()) { using (var fileStream = isoStore.OpenFile(currentPhoto + ".jpg", FileMode.Open, FileAccess.Read)) { source.SetSource(fileStream); } } this.bitmap = new WriteableBitmap(source); var sdkImg = ImageConverter.SystemToSdk(this.bitmap); var result = this.FaceSdkHelper.Detect(sdkImg); if (SdkHelper.foundFace == true) { foreach (var shape in SdkHelper.results) { var defaultFaceCalculations = Calculus.ReadDefaultFaceCalculations(); var array = FaceCalculationsHelpers.FromFaceCalculationsToVector(defaultFaceCalculations); var calculatedFaceCalculations = Calculus.GetFaceCalculationsFromShape(shape); var resultArray = FaceCalculationsHelpers.FromFaceCalculationsToVector(calculatedFaceCalculations); Conditions c = new Conditions(); var resultFromCalculus = c.GetLevelVerifierFunction(selectedPhotos[currentPhoto]).Invoke(array, resultArray); if (resultFromCalculus != 0) { using (var db = new GrimacizerContext(GrimacizerContext.ConnectionString)) { db.Settings.FirstOrDefault()._17_SurvivalScore += resultFromCalculus; db.SubmitChanges(); } MessageBox.Show("Picture number " + currentPhoto + " correct! You won " + resultFromCalculus + " points!"); } else { MessageBox.Show("Picture number " + currentPhoto + " did not match!"); } } } else { MessageBox.Show("Picture number " + currentPhoto + "! Camera did not detect your face!"); } }); } catch (Exception ex) { MessageBox.Show("Something bad appeared! Going back.."); NavigationService.Navigate(new Uri(Pages.MainPage, UriKind.RelativeOrAbsolute)); } finally { GC.Collect(); } }