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); } }
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); } }