예제 #1
0
        public async Task TestCustomDownscalingAndDecodeEncodeResults()
        {
            var imageBytes = Convert.FromBase64String("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=");

            using (var b = new ImageJob())
            {
                var cmd = new DecodeCommands
                {
                    JpegDownscaleHint   = new Size(20, 20),
                    JpegDownscalingMode = DecoderDownscalingMode.Fastest,
                    DiscardColorProfile = true
                };
                var r = await b.Decode(new BytesSource(imageBytes), 0, cmd)
                        .Distort(30, 20, new ResampleHints().SetSharpen(50.0f, SharpenWhen.Always).SetResampleFilters(InterpolationFilter.Robidoux_Fast, InterpolationFilter.Cubic))
                        .ConstrainWithin(5, 5)
                        .EncodeToBytes(new LodePngEncoder()).Finish().InProcessAsync();

                Assert.Equal(5, r.First.Width);
                Assert.True(r.First.TryGetBytes().HasValue);
                Assert.Equal(r.DecodeResults.First().Width, 1);
                Assert.Equal(r.DecodeResults.First().Height, 1);
                Assert.Equal(r.DecodeResults.First().PreferredExtension, "png");
                Assert.Equal(r.DecodeResults.First().PreferredMimeType, "image/png");

                Assert.Equal(r.EncodeResults.First().Width, 5);
                Assert.Equal(r.EncodeResults.First().Height, 3);
                Assert.Equal(r.EncodeResults.First().PreferredExtension, "png");
                Assert.Equal(r.EncodeResults.First().PreferredMimeType, "image/png");
            }
        }
예제 #2
0
        public async Task TestCustomDownscaling()
        {
            var imageBytes = Convert.FromBase64String("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=");

            using (var b = new FluentBuildJob())
            {
                var cmd = new DecodeCommands
                {
                    DownscaleHint       = new Size(20, 20),
                    DownscalingMode     = DecderDownscalingMode.Fastest,
                    DiscardColorProfile = true
                };
                var r = await b.Decode(new BytesSource(imageBytes), 0, cmd)
                        .Distort(30, 20, 50.0f, InterpolationFilter.RobidouxFast, InterpolationFilter.Cubic)
                        .ConstrainWithin(5, 5)
                        .EncodeToBytes(new LibPngEncoder()).Finish().InProcessAsync();

                Assert.Equal(5, r.First.Width);
                Assert.True(r.First.TryGetBytes().HasValue);
            }
        }