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);
        }
Example #3
0
        /// <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);
        }
Example #4
0
        /// <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);
            }
        }
Example #5
0
            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));
            }