Ejemplo n.º 1
0
        public Image2DMatrix GetImageMatrix()
        {
            MatrixChanged = false;
            Image2DMatrix sourceMatrix = _imageLoader.GetImageMatrix();

            if (OperationShouldBeExecuted())
            {
                if (MatrixMustBeUpdated())
                {
                    MatrixChanged = true;
                    _lastDx       = Dx;
                    _lastDy       = Dy;

                    TransformationMatrix shiftingMatrix = TransformationMatrix.UnitMatrix3x3.Shift2D(Dx, Dy);
                    _cashedMatrix = Image2DMatrix.Transform(sourceMatrix,
                                                            new Image2DMatrix(sourceMatrix.Height, sourceMatrix.Width, sourceMatrix.BytePerPixel), shiftingMatrix);
                }

                return(_cashedMatrix);
            }
            else
            {
                MatrixChanged = true;
                _lastDx       = Dx;
                _lastDy       = Dy;
                return(sourceMatrix);
            }
        }
 private void AdjustBrightness(Image2DMatrix sourceMatrix, double brightnessFactor)
 {
     if (_lastBrightnessFactor != brightnessFactor || _imageLoader.MatrixChanged)
     {
         MatrixChanged         = true;
         _lastBrightnessFactor = brightnessFactor;
         _cashedMatrix         = sourceMatrix * brightnessFactor;
     }
 }
        public Image2DMatrix GetImageMatrix()
        {
            MatrixChanged = false;
            Image2DMatrix sourceMatrix = _imageLoader.GetImageMatrix();

            if (UseCustomBrightness)
            {
                AdjustBrightness(sourceMatrix, BrightnessFactor);
            }
            else
            {
                AdjustBrightness(sourceMatrix, MetaFileBrightnessFactor);
            }

            return(_cashedMatrix);
        }