Ejemplo n.º 1
0
        public Statistics Encode(string inputFilePath, string outputFilePath, HuffmanEncodeModel huffmanEncodeModel)
        {
            Statistics             statiscs;
            IHuffmanCoderInterface huffmanCoderInterface;
            IStatisticsBuilder     statisticsBuilder = new StatisticsBuilder();

            using (IInputReader input = new InputReader(inputFilePath))
            {
                ICoderOutputWriter output = new CoderOutputWriter(new ByteCreator(), new HeaderCreator());
                if (huffmanEncodeModel == HuffmanEncodeModel.Standard)
                {
                    huffmanCoderInterface = new StandardHuffmanCoderInterface(input, output);
                }
                else if (huffmanEncodeModel == HuffmanEncodeModel.Block)
                {
                    huffmanCoderInterface = new PairHuffmanCoderInterface(input, output);
                }
                else
                {
                    huffmanCoderInterface = new MarkowHuffmanCoderInterface(input, output);
                }
                huffmanCoderInterface.Encode();
                System.IO.File.WriteAllBytes(outputFilePath, output.FileBytes);
                statiscs = statisticsBuilder.BuildStatistics(output.SymbolMap, output.Header, input.Size, output.Size);

                if (huffmanEncodeModel == HuffmanEncodeModel.Standard)
                {
                    IHistogramBuilder histogramBuilder = new HistogramBuilder();
                    histogramBuilder.BuildHistogram(output.SymbolMap, outputFilePath);
                }
            }
            return(statiscs);
        }
        public async void BuildHistograms()
        {
            HistogramBuilder.UseROI = this.LimitHistograms && SelectedROI != null;
            HistogramBuilder.ROI    = this.SelectedROI;
            var histograms = await HistogramBuilder.FromGrids(SelectedData);

            MessengerInstance.Send(new AddHistogramsMessage(histograms));
        }
Ejemplo n.º 3
0
        public IActionResult LoadImage([FromServices] ImageAccount imageAccount)
        {
            var image = new ImageAdapter(Request.Form.Files["image_input"])
                        .Adapt();

            var histogramBuilder = new HistogramBuilder(image);
            var redHistogram     = histogramBuilder
                                   .Color(ColorSpectrum.Red)
                                   .Build();
            var greenHistogram = histogramBuilder
                                 .Color(ColorSpectrum.Green)
                                 .Build();
            var blueHistogram = histogramBuilder
                                .Color(ColorSpectrum.Blue)
                                .Build();

            var id = imageAccount.Register(image, redHistogram, greenHistogram, blueHistogram);

            return(Json(new
            {
                histograms = new HistogramAdapter(redHistogram, greenHistogram, blueHistogram).Adapt(),
                id
            }));
        }