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