Example #1
0
 public RenderLayer(
     IRenderLayerFactory factory,
     Size size,
     double scaling,
     IVisual layerRoot)
 {
     _factory  = factory;
     Bitmap    = factory.CreateLayer(layerRoot, size * scaling, 96 * scaling, 96 * scaling);
     Size      = size;
     Scaling   = scaling;
     LayerRoot = layerRoot;
 }
Example #2
0
        private IRenderTargetBitmapImpl GetOverlay(Size size, double scaling)
        {
            size = new Size(size.Width * scaling, size.Height * scaling);

            if (_overlay == null ||
                _overlay.PixelWidth != size.Width ||
                _overlay.PixelHeight != size.Height)
            {
                _overlay?.Dispose();
                _overlay = _layerFactory.CreateLayer(null, size, 96 * scaling, 96 * scaling);
            }

            return(_overlay);
        }
Example #3
0
        public void ResizeBitmap(Size size, double scaling)
        {
            if (Size != size || Scaling != scaling)
            {
                var resized = _factory.CreateLayer(LayerRoot, size * scaling, 96 * scaling, 96 * scaling);

                using (var context = resized.CreateDrawingContext(null))
                {
                    context.Clear(Colors.Transparent);
                    context.DrawImage(Bitmap, 1, new Rect(Size), new Rect(Size));
                    Bitmap.Dispose();
                    Bitmap = resized;
                    Size   = size;
                }
            }
        }