Ejemplo n.º 1
0
        public async Task TestAllJob()
        {
            var imageBytes = Convert.FromBase64String(
                "iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=");

            using (var b = new ImageJob())
            {
                var r = await b.Decode(imageBytes)
                        .FlipVertical()
                        .FlipHorizontal()
                        .Rotate90()
                        .Rotate180()
                        .Rotate270()
                        .Transpose()
                        .CropWhitespace(80, 0.5f)
                        .Distort(30, 20)
                        .Crop(0, 0, 10, 10)
                        .Region(-5, -5, 10, 10, AnyColor.Black)
                        .RegionPercent(-10f, -10f, 110f, 110f, AnyColor.Transparent)
                        .BrightnessSrgb(-1f)
                        .ContrastSrgb(1f)
                        .SaturationSrgb(1f)
                        .WhiteBalanceSrgb(80)
                        .ColorFilterSrgb(ColorFilterSrgb.Invert)
                        .ColorFilterSrgb(ColorFilterSrgb.Sepia)
                        .ColorFilterSrgb(ColorFilterSrgb.Grayscale_Bt709)
                        .ColorFilterSrgb(ColorFilterSrgb.Grayscale_Flat)
                        .ColorFilterSrgb(ColorFilterSrgb.Grayscale_Ntsc)
                        .ColorFilterSrgb(ColorFilterSrgb.Grayscale_Ry)
                        .ExpandCanvas(5, 5, 5, 5, AnyColor.FromHexSrgb("FFEECCFF"))
                        .FillRectangle(2, 2, 8, 8, AnyColor.Black)
                        .ResizerCommands("width=10&height=10&mode=crop")
                        .ConstrainWithin(5, 5)
                        .Watermark(new BytesSource(imageBytes),
                                   new WatermarkOptions()
                                   .SetMarginsLayout(
                                       new WatermarkMargins(WatermarkAlign.Image, 1, 1, 1, 1),
                                       WatermarkConstraintMode.Within,
                                       new ConstraintGravity(90, 90))
                                   .SetOpacity(0.5f)
                                   .SetHints(new ResampleHints().SetSharpen(15f, SharpenWhen.Always))
                                   .SetMinCanvasSize(1, 1))
                        .EncodeToBytes(new MozJpegEncoder(80, true))
                        .Finish().InProcessAsync();

                Assert.Equal(5, r.First.Width);
                Assert.True(r.First.TryGetBytes().HasValue);
            }
        }
Ejemplo n.º 2
0
        public async Task TestMultipleInputs()
        {
            var imageBytes = Convert.FromBase64String("iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEX/TQBcNTh/AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=");

            using (var b = new ImageJob())
            {
                var canvas = b.Decode(imageBytes)
                             .Distort(30, 30);

                var r = await b.Decode(imageBytes)
                        .Distort(20, 20)
                        .FillRectangle(5, 5, 15, 15, AnyColor.FromHexSrgb("FFEECC"))
                        .TransparencySrgb(0.5f)
                        .DrawImageExactTo(canvas,
                                          new Rectangle(5, 5, 25, 25),
                                          new ResampleHints(),
                                          CompositingMode.Compose)
                        .EncodeToBytes(new LodePngEncoder())
                        .Finish().InProcessAsync();

                Assert.Equal(30, r.TryGet(2).Width);
                Assert.True(r.First.TryGetBytes().HasValue);
            }
        }