예제 #1
0
파일: ImageResizer.cs 프로젝트: JuRogn/OA
        public Image Resize(double scale, ResamplingFilters technique)
        {
            FluxJpeg.Core.Filtering.Filter filter;
            int newHeight = (int) (scale * this._input.Height);
            int newWidth = (int) (scale * this._input.Width);
            switch (technique)
            {
                case ResamplingFilters.NearestNeighbor:
                    filter = new NNResize();
                    break;

                case ResamplingFilters.LowpassAntiAlias:
                    filter = new LowpassResize();
                    break;

                default:
                    throw new NotSupportedException();
            }
            return new Image(this._input.ColorModel, filter.Apply(this._input.Raster, newWidth, newHeight));
        }
예제 #2
0
        public Image Resize(double scale, ResamplingFilters technique)
        {
            int height = (int)(scale * _input.Height);
            int width = (int)(scale * _input.Width);

            Filter resizeFilter;

            switch (technique)
            {
                case ResamplingFilters.NearestNeighbor:
                    resizeFilter = new NNResize();
                    break;
                case ResamplingFilters.LowpassAntiAlias:
                    resizeFilter = new LowpassResize();
                    break;
                default:
                    throw new NotSupportedException();
            }

            return new Image(_input.ColorModel, resizeFilter.Apply(_input.Raster, width, height));
        }
예제 #3
0
 private Filter GetResizeFilter(ResamplingFilters technique)
 {
     Filter resizeFilter;
     switch (technique)
     {
         case ResamplingFilters.NearestNeighbor:
             resizeFilter = new NNResize();
             break;
         case ResamplingFilters.LowpassAntiAlias:
             resizeFilter = new LowpassResize();
             break;
         default:
             throw new NotSupportedException();
     }
     resizeFilter.ProgressChanged += ResizeProgressChanged;
     return resizeFilter;
 }