コード例 #1
0
        public BitmapPixelChanges ChangeBrightness(Layer layer, Coordinates coordinates, int toolSize,
                                                   float correctionFactor)
        {
            DoubleCords centeredCoords = CoordinatesCalculator.CalculateThicknessCenter(coordinates, toolSize);

            Coordinates[] rectangleCoordinates = CoordinatesCalculator.RectangleToCoordinates(centeredCoords.Coords1.X,
                                                                                              centeredCoords.Coords1.Y,
                                                                                              centeredCoords.Coords2.X, centeredCoords.Coords2.Y);
            BitmapPixelChanges changes = new BitmapPixelChanges(new Dictionary <Coordinates, Color>());

            for (int i = 0; i < rectangleCoordinates.Length; i++)
            {
                if (Mode == BrightnessMode.Default)
                {
                    if (_pixelsVisited.Contains(rectangleCoordinates[i]))
                    {
                        continue;
                    }
                    _pixelsVisited.Add(rectangleCoordinates[i]);
                }

                Color pixel    = layer.GetPixelWithOffset(rectangleCoordinates[i].X, rectangleCoordinates[i].Y);
                Color newColor = ExColor.ChangeColorBrightness(Color.FromArgb(pixel.A, pixel.R, pixel.G, pixel.B),
                                                               correctionFactor);
                changes.ChangedPixels.Add(new Coordinates(rectangleCoordinates[i].X, rectangleCoordinates[i].Y),
                                          newColor);
            }

            return(changes);
        }
コード例 #2
0
        public void CreateCircle(Layer layer, Coordinates coordinates, Color color, int size)
        {
            DoubleCords calculatedCords = CalculateCoordinatesForShapeRotation(coordinates);

            layer.LayerBitmap.DrawEllipse(calculatedCords.Coords1.X, calculatedCords.Coords1.Y, calculatedCords.Coords2.X,
                                          calculatedCords.Coords2.Y, color);
        }
コード例 #3
0
        public void CalculateSquareOddThicknessCenterTest()
        {
            DoubleCords cords = CoordinatesCalculator.CalculateThicknessCenter(new Coordinates(3, 3), 3);

            Assert.AreEqual(2, cords.Coords1.X);
            Assert.AreEqual(2, cords.Coords1.Y);
            Assert.AreEqual(4, cords.Coords2.X);
            Assert.AreEqual(4, cords.Coords2.Y);
        }
コード例 #4
0
        public BitmapPixelChanges Draw(Coordinates startingCoords, Color color, int toolSize)
        {
            int         x1, y1, x2, y2;
            DoubleCords centeredCoords = CoordinatesCalculator.CalculateThicknessCenter(startingCoords, toolSize);

            x1 = centeredCoords.Coords1.X;
            y1 = centeredCoords.Coords1.Y;
            x2 = centeredCoords.Coords2.X;
            y2 = centeredCoords.Coords2.Y;
            return(new BitmapPixelChanges(CoordinatesCalculator.RectangleToCoordinates(x1, y1, x2, y2), color));
        }
コード例 #5
0
 public override LayerChange[] Use(Layer layer, Coordinates[] coordinates, Color color)
 {
     int         thickness             = Toolbar.GetSetting <SizeSetting>("ToolSize").Value;
     DoubleCords fixedCoordinates      = CalculateCoordinatesForShapeRotation(coordinates[^ 1], coordinates[0]);
コード例 #6
0
        public void CreateRectangle(Layer layer, Coordinates startingCoords, Color color, int toolSize)
        {
            DoubleCords coordinates = CalculateCoordinatesForShapeRotation(startingCoords);

            layer.LayerBitmap.DrawRectangle(coordinates.Coords1.X, coordinates.Coords1.Y, coordinates.Coords2.X, coordinates.Coords2.Y, color);
        }