private static void NewCommandFileEvent(object sender, ValueEventArgs <Guid, string> e) { Task.Factory.StartNew((o) => { var r = (ValueEventArgs <Guid, string>)o; FileInfo file = new FileInfo(r.Value2); try { using (var matcher = new TemplateMatcher(file.FullName)) { if (!matcher.MatchTemplate()) { if (!MatchForm.Run(file.FullName)) { AppContext.Default.SaveResult(r.Value1, ""); return; } } if (matcher.MatchTemplate()) { var @out = new DirectoryInfo(Config.OUT_FOLDER); @out.EnsureDirectory(); var imgcc = @out.CombineFileName(string.Concat(file.GetFileNameWithoutExtension(), "_ccimg", file.Extension)); matcher.PixellateHiddenAreasAndSaveUnderArea(imgcc.FullName); var img = @out.CombineFileName(string.Concat(file.GetFileNameWithoutExtension(), "_cc", file.Extension)); matcher.SaveResult(img.FullName); AppContext.Default.SaveResult(r.Value1, imgcc.FullName, img.FullName); } else { throw new ApplicationException("Cannot match template"); } } } catch (Exception ex) { AppContext.Default.FireError(ex); } }, e, TaskCreationOptions.LongRunning); }
private void Match_MenuItem_Click(object sender, EventArgs e) { if (this.Image == null) { MessageBox.Show("Image is null"); } else if (this.Template == null) { MessageBox.Show("Template is null"); } else { if (string.IsNullOrWhiteSpace(MatchName)) { MatchName = Interaction.InputBox("Match name", Application.ProductName, DateTime.Now.ToShortDateString()); } Rectangle match = Rectangle.Empty; if (!TemplateMatcher.MatchTemplate(MTemplate.Image, MTemplate.Cover.Template, ref match)) { MessageBox.Show("Cannot match Template"); } else { float offset = ScrollOffset; CoverDetails.Match = match; foreach (var hidden in MTemplate.HiddenAreas) { hidden.Offset = hidden.Rectangle.Offset(match); hidden.Distance = hidden.Rectangle.Distance(match); } } } }