Changes the size of a Layer. This filter can be used in several ways depending on the effect you wish to achieve.

There are five modes available for the ResizeFilter filter.

By default, images will not be enlarged if they are smaller than the target size. However, you can set the ResizeFilter.EnlargeImage property to true to allow enlargement.
Inheritance: ImageReplacementFilter
コード例 #1
0
ファイル: Image.cs プロジェクト: dpawatts/zeus
        public string GetUrl(int width, int height, bool fill, DynamicImageFormat format)
        {
            Composition image = new Composition();
            image.ImageFormat = format;
            ImageLayer imageLayer = new ImageLayer();

            ZeusImageSource source = new ZeusImageSource();
            source.ContentID = ID;

            imageLayer.Source = source;

            ResizeFilter resizeFilter = new ResizeFilter();
            resizeFilter.Mode = fill ? ResizeMode.UniformFill : ResizeMode.Uniform;
            resizeFilter.Width = Unit.Pixel(width);
            resizeFilter.Height = Unit.Pixel(height);

            imageLayer.Filters.Add(resizeFilter);

            image.Layers.Add(imageLayer);

            return ImageUrlGenerator.GetImageUrl(image);

            /*old code replaced
             *
            return new DynamicImageBuilder()
                .WithLayer(
                    LayerBuilder.Image.SourceImage(this).WithFilter(FilterBuilder.Resize.To(width, height, fill)))
                .Url;
             */
        }
コード例 #2
0
        public void ResizeFilter_UseHeightResizeMode_CalculatedCorrectly()
        {
            FastBitmap bitmap = new FastBitmap("Filters\\Images\\Tulips.png", UriKind.Relative);

            ResizeFilter resizeFilter = new ResizeFilter();
            resizeFilter.Mode = ResizeMode.UseHeight;
            resizeFilter.Height = Unit.Pixel(200);

            resizeFilter.ApplyFilter(bitmap);

            Assert.AreEqual(300, bitmap.Width);
            Assert.AreEqual(200, bitmap.Height);
        }
コード例 #3
0
        public void ResizeFilter_UniformResizeModeWithDominantHeight_CalculatedCorrectly()
        {
            FastBitmap bitmap = new FastBitmap("Filters\\Images\\Tulips.png", UriKind.Relative);

            ResizeFilter resizeFilter = new ResizeFilter();
            resizeFilter.Mode = ResizeMode.Uniform;
            resizeFilter.Width = Unit.Pixel(200);
            resizeFilter.Height = Unit.Pixel(100);

            resizeFilter.ApplyFilter(bitmap);

            Assert.AreEqual(150, bitmap.Width);
            Assert.AreEqual(100, bitmap.Height);
        }
コード例 #4
0
        public void ResizeFilterInUseHeightModeCalculatesDimensionsCorrectly()
        {
            // Arrange.
            var bitmap = new FastBitmap(@"Resources\Tulips.png", UriKind.Relative);
            var resizeFilter = new ResizeFilter
            {
                Mode = ResizeMode.UseHeight,
                Height = Unit.Pixel(200)
            };

            // Act.
            resizeFilter.ApplyFilter(bitmap);

            // Assert.
            Assert.AreEqual(300, bitmap.Width);
            Assert.AreEqual(200, bitmap.Height);
        }
コード例 #5
0
        public void ResizeFilterInUniformModeWithDominantWidthCalculatesDimensionsCorrectly()
        {
            // Arrange.
            var bitmap = new FastBitmap(@"Resources\Tulips.png", UriKind.Relative);
            var resizeFilter = new ResizeFilter
            {
                Mode = ResizeMode.Uniform,
                Width = Unit.Pixel(200),
                Height = Unit.Pixel(200)
            };

            // Act.
            resizeFilter.ApplyFilter(null, bitmap);

            // Assert.
            Assert.AreEqual(200, bitmap.Width);
            Assert.AreEqual(133, bitmap.Height);
        }
コード例 #6
0
ファイル: CroppedImage.cs プロジェクト: dpawatts/zeus
        public string GetUrl(int width, int height, bool fill, DynamicImageFormat format, bool isResize)
        {
            //first construct the crop
            var imageSource = new ZeusImageSource();
            imageSource.ContentID = this.ID;

            if (this.Data == null)
                return "";

            // generate resized image url
            // set image format
            var dynamicImage = new SoundInTheory.DynamicImage.Composition();
            dynamicImage.ImageFormat = format;

            // create image layer wit ha source
            var imageLayer = new ImageLayer();
            imageLayer.Source = imageSource;

            // add filters
            if (!(TopLeftXVal == 0 && TopLeftYVal == 0 && CropWidth == 0 && CropHeight == 0))
            {
                var cropFilter = new CropFilter
                {
                    Enabled = true,
                    X = this.TopLeftXVal,
                    Y = this.TopLeftYVal,
                    Width = this.CropWidth,
                    Height = this.CropHeight
                };
                if (!isResize)
                    imageLayer.Filters.Add(cropFilter);
            }

            if (width > 0 && height > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = isResize ? ResizeMode.Uniform : ResizeMode.UniformFill,
                    Width = SoundInTheory.DynamicImage.Unit.Pixel(width),
                    Height = SoundInTheory.DynamicImage.Unit.Pixel(height)
                };
                imageLayer.Filters.Add(resizeFilter);
            }
            else if (width > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = ResizeMode.UseWidth,
                    Width = SoundInTheory.DynamicImage.Unit.Pixel(width)
                };
                imageLayer.Filters.Add(resizeFilter);
            }
            else if (height > 0)
            {
                var resizeFilter = new ResizeFilter
                {
                    Mode = ResizeMode.UseHeight,
                    Height = SoundInTheory.DynamicImage.Unit.Pixel(height)
                };
                imageLayer.Filters.Add(resizeFilter);
            }

            // add the layer
            dynamicImage.Layers.Add(imageLayer);

            // generate url
            return ImageUrlGenerator.GetImageUrl(dynamicImage);
        }