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); }
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); }
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); }
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)); }
public override LayerChange[] Use(Layer layer, Coordinates[] coordinates, Color color) { int thickness = Toolbar.GetSetting <SizeSetting>("ToolSize").Value; DoubleCords fixedCoordinates = CalculateCoordinatesForShapeRotation(coordinates[^ 1], coordinates[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); }