public BitmapSource RenderImageSource(ILUT lut) { WriteableBitmap img = BackgroundLayer.RenderImageSource(lut) as WriteableBitmap; if (img != null && _layers.Count > 1) { for (int i = 1; i < _layers.Count; ++i) { var g = _layers[i]; var layer = _layers[i].RenderImageSource(null) as WriteableBitmap; if (layer != null) { var rect = new Rect(g.ScaledOffsetX, g.ScaledOffsetY, g.ScaledWidth, g.ScaledHeight); img.Blit(rect, layer, rect); } } } return(img); }
public BitmapSource RenderImageSource(ILUT lut) { WriteableBitmap img = BackgroundLayer.RenderImageSource(lut) as WriteableBitmap; if (img != null && _layers.Count > 1) { for (int i = 1; i < _layers.Count; ++i) { var g = _layers[i]; var layer = _layers[i].RenderImageSource(null) as WriteableBitmap; if (layer != null) { Array pixels = new int[g.ScaledWidth * g.ScaledHeight]; layer.CopyPixels(pixels, 4, 0); img.WritePixels(new Int32Rect(g.ScaledOffsetX, g.ScaledOffsetY, g.ScaledWidth, g.ScaledHeight), pixels, 4, 0); } } } return(img); }