我正在使用Tim Jones的DynamicImage库的分支来处理C#中的后台任务。
除了隔离图层效果之外,一切都很好用。在下面的示例中,“firstLayer”中的过滤器也应用于“secondLayer”。我需要第二层在顶部,但只锚定到底部。两个图像都是PNG,只有“secondLayer”具有透明度。如何确保过滤器不会影响其他图层?
Composition composition = new Composition();
//Create Layer 1 --------------
var firstLayer = LayerBuilder.Image.SourceBytes(firstImageBytes);
//Rotate The Image
firstLayer.WithFilter(FilterBuilder.Rotate.To(180));
//Crop the image
firstLayer.WithFilter(FilterBuilder.Crop.X(50).Y(50));
//Create Layer 2 -----------
var secondLayer = LayerBuilder.Image.SourceBytes(secondImageBytes);
//Add both layers to the composition ---------------
composition.Layers.Add(firstLayer.ToLayer());
composition.Layers.Add(secondLayer.ToLayer());
// Anchor image 2 to the bottom
composition.Layers[1].Anchor = AnchorStyles.BottomCenter;
//Generate The Image
GeneratedImage generatedImage = composition.GenerateImage();
//I then convert the generatedImage to a byte[] and save it to Blob storage.
我在上面的代码中尝试了很多变体,过滤器似乎总是影响它们未应用的图层。我确信我错过了一个重要的概念。有什么想法或建议吗?