public void HslaColorImplementsEquals() { HslaColor first = HslaColor.FromColor(Color.White); HslaColor second = HslaColor.FromColor(Color.White); first.Equals(second).Should().BeTrue("because the color structure should implement Equals()"); }
public void HslaColorShouldConvertToAndFromString(string expected) { Color color = ColorTranslator.FromHtml(expected); HslaColor hslaColor = HslaColor.FromColor(color); string result = ColorTranslator.ToHtml(hslaColor); result.Should().Be(expected); }
/// <summary> /// Processes the image. /// </summary> /// <param name="factory"> /// The current instance of the <see cref="T:ImageProcessor.ImageFactory"/> class containing /// the image to process. /// </param> /// <returns> /// The processed image from the current instance of the <see cref="T:ImageProcessor.ImageFactory"/> class. /// </returns> public Image ProcessImage(ImageFactory factory) { Bitmap newImage = null; Image image = factory.Image; try { Tuple <int, bool> parameters = this.DynamicParameter; int degrees = parameters.Item1; bool rotate = parameters.Item2; int width = image.Width; int height = image.Height; newImage = new Bitmap(image); using (FastBitmap fastBitmap = new FastBitmap(newImage)) { if (!rotate) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { HslaColor original = HslaColor.FromColor(fastBitmap.GetPixel(x, y)); HslaColor altered = HslaColor.FromHslaColor(degrees / 360f, original.S, original.L, original.A); fastBitmap.SetPixel(x, y, altered); } } } else { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { HslaColor original = HslaColor.FromColor(fastBitmap.GetPixel(x, y)); HslaColor altered = HslaColor.FromHslaColor((original.H + (degrees / 360f)) % 1, original.S, original.L, original.A); fastBitmap.SetPixel(x, y, altered); } } } } image.Dispose(); image = newImage; } catch (Exception ex) { if (newImage != null) { newImage.Dispose(); } throw new ImageProcessingException("Error processing image with " + this.GetType().Name, ex); } return(image); }
/// <summary> /// Processes the image. /// </summary> /// <param name="factory"> /// The current instance of the <see cref="T:ImageProcessor.ImageFactory"/> class containing /// the image to process. /// </param> /// <returns> /// The processed image from the current instance of the <see cref="T:ImageProcessor.ImageFactory"/> class. /// </returns> public Image ProcessImage(ImageFactory factory) { var image = factory.Image; try { Tuple <int, bool> parameters = DynamicParameter; var degrees = parameters.Item1; if (degrees == 0) { return(image); } var rotate = parameters.Item2; var width = image.Width; var height = image.Height; using (var fastBitmap = new FastBitmap(image)) { if (!rotate) { for (var y = 0; y < height; y++) { for (var x = 0; x < width; x++) { var original = HslaColor.FromColor(fastBitmap.GetPixel(x, y)); var altered = HslaColor.FromHslaColor(degrees / 360f, original.S, original.L, original.A); fastBitmap.SetPixel(x, y, altered); } } } else { for (var y = 0; y < height; y++) { for (var x = 0; x < width; x++) { var original = HslaColor.FromColor(fastBitmap.GetPixel(x, y)); var altered = HslaColor.FromHslaColor((original.H + (degrees / 360f)) % 1, original.S, original.L, original.A); fastBitmap.SetPixel(x, y, altered); } } } } return(image); } catch (Exception ex) { throw new ImageProcessingException("Error processing image with " + GetType().Name, ex); } }
public void then_should_return_rgba_version_of_hsla_color_given_red() { // Arrange var hslaColor = HslaColor.FromColor(Color.Red); // Act var rgbaColor = (RgbaColor)hslaColor; // Assert Assert.That(rgbaColor.R, Is.EqualTo(255)); Assert.That(rgbaColor.G, Is.EqualTo(0)); Assert.That(rgbaColor.B, Is.EqualTo(0)); Assert.That(rgbaColor.A, Is.EqualTo(255)); }