Exemplo n.º 1
0
        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);
            }
        }
Exemplo n.º 2
0
        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);
            }
        }
Exemplo n.º 3
0
 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";
     }
 }
Exemplo n.º 4
0
        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);
 }
Exemplo n.º 6
0
 private static int BiggestToLittlestImages(PartImage one, PartImage two)
 {
     return(two.image.Height.CompareTo(one.image.Height));
 }
Exemplo n.º 7
0
        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);
            }
        }
Exemplo n.º 8
0
        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);
        }
Exemplo n.º 9
0
        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";
        }