public WriteableBitmap GetBitmap(IBitmapChannel bitmapChannel, IGraphicsGetter graphicsGetter)
        {
            const int dpi = 96;

            var writeableBitmap = new WriteableBitmap(800, 600, dpi, dpi, PixelFormats.Bgr32, null);

            writeableBitmap.Lock();

            var bitmap = new Bitmap(writeableBitmap.PixelWidth, writeableBitmap.PixelHeight,
                                    writeableBitmap.BackBufferStride, PixelFormat.Format32bppPArgb,
                                    writeableBitmap.BackBuffer);

            using (var graphics = graphicsGetter.FromImage(bitmap))
            {
                graphics.Clear(System.Drawing.Color.White);

                DrawCurves(bitmapChannel.Curves, graphics);
                DrawPoints(bitmapChannel.AnchorLines, graphics);
            }

            var dirtyRect = new Int32Rect(0, 0, (int)writeableBitmap.Width, (int)writeableBitmap.Height);

            writeableBitmap.AddDirtyRect(dirtyRect);
            writeableBitmap.Unlock();
            return(writeableBitmap);
        }
        public BitmapDrawerTests()
        {
            _bitmapChannel  = MockRepository.GenerateStub <IBitmapChannel>();
            _graphicsGetter = MockRepository.GenerateStub <IGraphicsGetter>();
            _graphics       = MockRepository.GenerateStub <Graphics>();
            _graphicsGetter.Stub(x => x.FromImage(null)).IgnoreArguments().Return(_graphics);

            _target = new BitmapDrawer();
        }
Ejemplo n.º 3
0
        public SplinesController(ISelectedAnchorPointGetter selectedAnchorPointGetter,
                                 ISplineControllerFactory splineControllerFactory,
                                 ILineInterpolator lineInterpolator)
        {
            _selectedAnchorPointGetter = selectedAnchorPointGetter;
            _lineInterpolator          = lineInterpolator;

            SplineSettingsController = splineControllerFactory.Get(UpdateBitmapChannel);

            BitmapChannel = new BitmapChannel();

            ResetAnchorLines();
            ResetParameters();
        }