public WavePartElement(UPart part) : base() { partImageTrans = new TranslateTransform(); this.Part = part; partBitmap = BitmapFactory.New( (int)System.Windows.SystemParameters.VirtualScreenWidth, (int)UIConstants.TrackMaxHeight); partImage = new PartImage() { RenderTransform = partImageTrans, IsHitTestVisible = false }; partImage.Arrange(new Rect(0, 0, partBitmap.PixelWidth, partBitmap.PixelHeight)); partImage.Source = partBitmap; this.RemoveVisualChild(partVisual); this.AddVisualChild(partImage); if (((UWavePart)Part).Peaks == null) { worker = new BackgroundWorker() { WorkerReportsProgress = true }; worker.DoWork += BuildPeaksAsync; worker.ProgressChanged += BuildPeaksProgressChanged; worker.RunWorkerCompleted += BuildPeaksCompleted; worker.RunWorkerAsync((UWavePart)Part); } }
public WavePartElement(UPart part) : base() { partImageTrans = new TranslateTransform(); this.Part = part; partBitmap = BitmapFactory.New( (int)System.Windows.SystemParameters.VirtualScreenWidth, (int)UIConstants.TrackMaxHeight); partImage = new PartImage() { RenderTransform = partImageTrans, IsHitTestVisible = false }; partImage.Arrange(new Rect(0, 0, partBitmap.PixelWidth, partBitmap.PixelHeight)); partImage.Source = partBitmap; this.RemoveVisualChild(partVisual); this.AddVisualChild(partImage); if (((UWavePart)Part).Peaks == null) { var scheduler = TaskScheduler.FromCurrentSynchronizationContext(); Task.Run(() => { ((UWavePart)Part).BuildPeaks(this); Dispatcher.Invoke(() => { RedrawPart(); }); }).ContinueWith((task) => { if (task.IsFaulted) { Log.Information($"{task.Exception}"); throw task.Exception; } }, CancellationToken.None, TaskContinuationOptions.OnlyOnFaulted, scheduler); } }
public static string AddImage(int partID = 0, int sizeid = 0, string webfile = "", string localfile = "") { try { CurtDevDataContext db = new CurtDevDataContext(); JavaScriptSerializer js = new JavaScriptSerializer(); char sort = 'a'; try { sort = db.PartImages.Where(x => x.partID.Equals(partID)).Where(x => x.sizeID.Equals(sizeid)).OrderByDescending(x => x.sort).Select(x => x.sort).First<char>(); sort = GetNextLetter(sort.ToString()); } catch {}; System.Drawing.Image img = System.Drawing.Image.FromFile(localfile); PartImage image = new PartImage { partID = partID, sizeID = sizeid, path = webfile, height = img.Height, width = img.Width, sort = sort }; img.Dispose(); db.PartImages.InsertOnSubmit(image); db.SubmitChanges(); return js.Serialize(image); } catch { return "error"; } }
public static Bitmap GetMultiImage(Bitmap image, Size partsDim, Size SizePartImageInOut, Size SizeToCompare, Func <LogicAndImage <ImageToCompare, PartImage>, Func <Bitmap> > PartImageFunc, IOrderDispatcher <PartImage> parts) { Size partSizeInImage; PartImage[] partImage = PartImage.GetPartImageDim(image, partsDim, out partSizeInImage); Dictionary <PartImage, Func <Bitmap> > BitmapDictionary = new Dictionary <PartImage, Func <Bitmap> >(); List <(LogicAndImage <ImageToCompare, PartImage> part, Func <Bitmap> bitmapFunc)> x = (parts.GetItemWitchOrder(partsDim, partImage).AsParallel().Select(X =>//[pobieranie fragmentów new LogicAndImage <ImageToCompare, PartImage>() { Bitmap = X, Logic = new ImageToCompare((Bitmap)X, SizeToCompare) } ).ToList().AsParallel(). // Dołączenie do fragmentów danych o wektorach Select(X => (X, PartImageFunc(X))).ToList()); //obliczenie najbarddziej podobnych obrazów x.ForEach(X => BitmapDictionary.Add(X.part.Bitmap, X.bitmapFunc)); Bitmap zw = MargeImage(partsDim, SizePartImageInOut, partSizeInImage, partImage, BitmapDictionary); return(zw); }
private static int BiggestToLittlestImages(PartImage one, PartImage two) { return two.image.Height.CompareTo(one.image.Height); }
private static int BiggestToLittlestImages(PartImage one, PartImage two) { return(two.image.Height.CompareTo(one.image.Height)); }
public void ImportImagesAsync(HttpServerUtilityBase server, int partid, object userState) { string directory = server.MapPath("/masterlibrary/" + partid.ToString() + "/images/"); try { string[] filenames = Directory.GetFiles(@directory); List<string> files = new List<string>(); List<PartImage> newimgs = new List<PartImage>(); foreach (string file in filenames) { files.Add(file.Substring(file.IndexOf("masterlibrary") - 1)); } CurtDevDataContext db = new CurtDevDataContext(); List<PartImage> oldimages = db.PartImages.Where(x => x.partID == partid).ToList<PartImage>(); db.PartImages.DeleteAllOnSubmit(oldimages); db.SubmitChanges(); List<PartImageSize> sizes = db.PartImageSizes.ToList<PartImageSize>(); foreach (PartImageSize size in sizes) { foreach (string file in files) { if (file.IndexOf(size.dimensions) != -1) { try { int period = file.IndexOf("."); int start = file.IndexOf("_", file.IndexOf(size.dimensions)) + 1; string sort = file.Substring(start, (period - start)); Image i = null; int tries = 0; while (i == null) { try { i = Image.FromFile(server.MapPath(file)); } catch { // image failed to map } tries++; if (tries >= 10) { break; } } if (i != null) { PartImage img = new PartImage { sizeID = size.sizeID, sort = Convert.ToChar(sort), path = "https://www.curtmfg.com" + file.Replace('\\', '/'), partID = partid, height = i.Height, width = i.Width }; newimgs.Add(img); } } catch { } } } } db.PartImages.InsertAllOnSubmit(newimgs); db.SubmitChanges(); } catch { }; IncrementCount(); /* * These are some junk response objects for testing * Evetually we will populate this will slightly less abstract data. In the end, it's really meaningless unless we need to update the status or something similar */ object sender = new object(); ImportImagesCompletedEventArgs args = new ImportImagesCompletedEventArgs(new Exception("Hit end"), false, userState, partid); // Invoke the completion of this Async action ImportImagesCompleted.Invoke(sender, args); }
public string ImportImages(HttpServerUtilityBase server, int partid = 0) { try { string directory = server.MapPath("/masterlibrary/" + partid.ToString() + "/images/"); string[] filenames = Directory.GetFiles(@directory); List<string> files = new List<string>(); List<PartImage> newimgs = new List<PartImage>(); foreach (string file in filenames) { files.Add(file.Substring(file.IndexOf("masterlibrary") - 1)); } CurtDevDataContext db = new CurtDevDataContext(); List<PartImage> oldimages = db.PartImages.Where(x => x.partID == partid).ToList<PartImage>(); db.PartImages.DeleteAllOnSubmit(oldimages); db.SubmitChanges(); List<PartImageSize> sizes = db.PartImageSizes.ToList<PartImageSize>(); foreach (PartImageSize size in sizes) { foreach (string file in files) { if (file.IndexOf(size.dimensions) != -1) { try { int period = file.IndexOf("."); int start = file.IndexOf("_", file.IndexOf(size.dimensions)) + 1; string sort = file.Substring(start, (period - start)); Image i = Image.FromFile(server.MapPath(file)); PartImage img = new PartImage { sizeID = size.sizeID, sort = Convert.ToChar(sort), path = "https://www.curtmfg.com" + file.Replace('\\', '/'), partID = partid, height = i.Height, width = i.Width }; newimgs.Add(img); } catch { } } } } db.PartImages.InsertAllOnSubmit(newimgs); db.SubmitChanges(); } catch { }; return "done"; }