Example #1
0
        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);
        }
Example #2
0
        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);
        }