public void exportImages() { if (currentView == ViewType.Time) { FileDialog dialog = new SaveFileDialog(); double width = 1920; double height = 1080; int ntime = view.getChromNtime(); string filename; dialog.Filter = "PNG files (*.png)|*.png|All files (*.*)|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { ChromView chromView = new ChromView(Transparency.Opaque); chromView.outParams = view.getChromOutParams(); chromView.TimeMode = true; chromView.Arrange(new Rect(new Size(width, height))); chromView.UpdateLayout(); for (int timei = 0; timei < ntime; timei++) { filename = Util.createNumberedFilename(dialog.FileName, timei); chromView.setChromTimei(timei); chromView.UpdateLayout(); Util.saveBitmapImage(Util.visualToBitmap(chromView, width, height), filename); Util.gcCollect(); view.updateProgress((float)timei / ntime); System.Windows.Forms.Application.DoEvents(); } view.clearProgress(); } } }
public void printExecute(object sender, ExecutedRoutedEventArgs e) { if (currentView != ViewType.Setup) { printing.print(false); Util.gcCollect(); } }
public void exportImage() { if (currentView != ViewType.Setup) { FileDialog dialog = new SaveFileDialog(); double width, height, dpi; dialog.Filter = "PNG files (*.png)|*.png|All files (*.*)|*.*"; if (dialog.ShowDialog() == DialogResult.OK) { dpi = optionParams.exportDpi; width = Util.convertToDpi(printing.getWidth(), dpi); height = Util.convertToDpi(printing.getHeight(), dpi); ChromView chromView = new ChromView(Transparency.Partial); chromView.visOutSet = view.getChromVisOutSet(); chromView.Arrange(new Rect(new Size(width, height))); chromView.UpdateLayout(); Util.saveBitmapImage(Util.visualToBitmap(chromView, width, height), dialog.FileName); } Util.gcCollect(); } }
public void updateModelThreadFunction(object modelRunParams0) { ModelRunParams modelRunParams = (ModelRunParams)modelRunParams0; // first check if model needs creating bool create = true; if (model != null) { switch (modelRunParams.inParams.model) { case ModelType.CCD: create = (model.GetType() != typeof(CCDModel)); break; case ModelType.Probabilistic: create = (model.GetType() != typeof(ProbModel)); break; case ModelType.Transport: create = (model.GetType() != typeof(TransModel)); break; } } if (create) { switch (modelRunParams.inParams.model) { case ModelType.CCD: model = new CCDModel(this, modelRunParams.inParams, preview.outParams, modelRunParams.optionParams); break; case ModelType.Probabilistic: model = new ProbModel(this, modelRunParams.inParams, preview.outParams, modelRunParams.optionParams); break; case ModelType.Transport: model = new TransModel(this, modelRunParams.inParams, preview.outParams, modelRunParams.optionParams); break; default: model = new PreviewModel(this, modelRunParams.inParams, modelRunParams.optionParams); break; } // if model just created; model needs to be updated too modelRunParams.updateModelReq = true; } if (modelRunParams.updateModelReq || modelRunParams.updateOutReq) { // clear previous output if (modelRunParams.viewType == ViewType.Out) { model.clearOut(); } else if (modelRunParams.viewType == ViewType.Time) { model.clearTimeOut(); } updateModelObservers(); } if (modelRunParams.updateModelReq) { preview.update(modelRunParams.inParams, null); preview.updateOut(modelRunParams.viewParams); model.update(modelRunParams.inParams, preview.previewParams); // if model updated, out must be updated too modelRunParams.updateOutReq = true; } if (modelRunParams.updateOutReq) { if (modelRunParams.viewType == ViewType.Out) { model.updateOut(modelRunParams.viewParams); } else if (modelRunParams.viewType == ViewType.Time) { model.updateTimeOut(modelRunParams.viewParams); } model.stats.start(); updateModelObservers(); model.stats.storeDrawviewTime(); } Util.gcCollect(); }