Пример #1
0
        public void GetRotationParametersForImage_ImageMisOriented_ReturnsCorrectEncoderParameters(ImageOrientation orientation, EncoderValue[] expectedValues)
        {
            // Arrange
            var image   = Fake.Image(orientation);
            var factory = Fake.ImageFactory(image);
            var rotator = new ImageRotator(factory);

            // Act
            var parameters = rotator.GetRotationParameters(image);

            // Assert
            Assert.IsNotNull(parameters);
            Assert.AreEqual(expectedValues.Length, parameters.Param.Length);

            foreach (var val in expectedValues)
            {
                Assert.IsTrue(parameters.Param.Any(param =>
                {
                    var valueField   = param.GetType().GetField("_parameterValue", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
                    var valuePointer = (IntPtr)valueField.GetValue(param);
                    var value        = (EncoderValue)Marshal.ReadInt32(valuePointer);

                    return(param.Encoder.Guid == Encoder.Transformation.Guid &&
                           param.NumberOfValues == 1 &&
                           param.ValueType == EncoderParameterValueType.ValueTypeLong &&
                           value == val);
                }));
            }
        }
Пример #2
0
        public void TestAntiClockwiseDir()
        {
            var inputImg    = (Bitmap)Image.FromFile(_inputFolderPath + @"\1.png");
            var rotatedBy45 = ImageRotator.RotateImg(inputImg, -45, _bkColor);

            rotatedBy45.Save(_outputFolder + @"\1_rotated_by_45_anti_clockwise.jpg");
        }
Пример #3
0
        public void TestFlipHorizontallyInPlace()
        {
            var srcImage = new IndexedImage {
                Size = new Size(3, 2)
            };

            int[] pixels;
            using (srcImage.LockPixels(out pixels))
            {
                for (int i = 0; i < pixels.Length; i++)
                {
                    pixels[i] = i;
                }
            }

            var dstImage = ImageRotator.FlipHorizontallyInPlace(srcImage);

            Assert.AreSame(srcImage, dstImage);
            Assert.AreEqual(new Size(3, 2), dstImage.Size);
            using (dstImage.LockPixels(out pixels))
            {
                Assert.AreEqual(2, pixels[0]);
                Assert.AreEqual(1, pixels[1]);
                Assert.AreEqual(0, pixels[2]);
                Assert.AreEqual(5, pixels[3]);
                Assert.AreEqual(4, pixels[4]);
                Assert.AreEqual(3, pixels[5]);
            }
        }
 protected virtual void InitializeComponent()
 {
     if (DesignedControl != null)
     {
         component  = (ImageRotator)DesignedControl;
         properties = TypeDescriptor.GetProperties(component);
     }
 }
Пример #5
0
        public void ProduceExpectedMatrix(int[][] matrix, int[][] expectedMatrix)
        {
            var rotator = new ImageRotator();

            rotator.Rotate(matrix);

            Assert.True(matrix.SequenceEqual(expectedMatrix, IntArrayEqualityComparer.Instance));
        }
Пример #6
0
        public void GetRotationParametersForImage_ImageNull_ThrowsArgumentException()
        {
            // Arrange
            var factory = Fake.ImageFactory(Fake.Image());
            var rotator = new ImageRotator(factory);

            // Act, Assert
            Assert.Throws <ArgumentException>(() => rotator.GetRotationParameters((IImage)null));
        }
Пример #7
0
        public void GetRotationParametersForImage_OrientationIsTopLeft_ReturnsNull()
        {
            // Arrange
            var image   = Fake.Image(ImageOrientation.TopLeft);
            var factory = Fake.ImageFactory(image);
            var rotator = new ImageRotator(factory);

            // Act
            var parameters = rotator.GetRotationParameters(image);

            // Assert
            Assert.IsNull(parameters);
        }
Пример #8
0
        public void TestGetRotationAngleToRealignForNegativeAngle()
        {
            const string secondEndLower = @"\disc_second_end_lower.";
            var          clickInputs    = MainProcessor.GetClickInputsFromFile(_inputFolderPath + secondEndLower + "xml");

            var clickPositions = clickInputs.ImageClickInputDetailsList[0].ClickPositionListForImages;

            var result = ImageRotator.GetRotationAngleToRealign(clickPositions);

            Assert.IsTrue(result < 0);
            Assert.IsTrue(Math.Abs(Math.Abs(result) - 45) < 5);

            var inputImg = (Bitmap)Image.FromFile(_inputFolderPath + secondEndLower + "jpg");
            var rotated  = ImageRotator.RotateImg(inputImg, result, _bkColor);

            rotated.Save(_outputFolder + secondEndLower + "rotated.jpg");
        }
Пример #9
0
 public void RestoreImageSettings(CodedImage image)
 {
     using (ImageSymboler.SuspendCallManipulations())
     {
         using (ImageColorer.SuspendCallManipulations())
         {
             using (ImageResizer.SuspendCallManipulations())
             {
                 using (ImageColorer.SuspendCallManipulations())
                 {
                     using (ImageRotator.SuspendCallManipulations())
                     {
                         ImageRotator.RestoreImageSettings(image);
                     }
                     ImageCropper.RestoreImageSettings(image);
                 }
                 ImageResizer.RestoreImageSettings(image);
             }
             ImageColorer.RestoreImageSettings(image);
         }
         ImageSymboler.RestoreImageSettings(image);
     }
 }
Пример #10
0
 public void FlipVertically()
 {
     ImageRotator.FlipVerticallyInPlace(ManipulatedImage);
     RotateManupulations.Add(V);
     OnImageChanged();
 }
Пример #11
0
 public void FlipHorizontally()
 {
     ImageRotator.FlipHorizontallyInPlace(ManipulatedImage);
     RotateManupulations.Add(H);
     OnImageChanged();
 }
Пример #12
0
 public void RotateCCW()
 {
     ImageRotator.RotateCCWInPlace(ManipulatedImage);
     RotateManupulations.Add(CCW);
     OnImageChanged();
 }
Пример #13
0
 public void RotateImage90CCW()
 {
     ImageRotator.RotateImage(this.Image, ImageRotationStyle.CCW);
     this.Invalidate();
 }
        public static ImageRotator CreateInstance(Image image)
        {
            ImageRotator rotator = new ImageRotator(image as Bitmap);

            return(rotator);
        }
 protected virtual void InitializeComponent()
 {
     if (DesignedControl != null)
     {
         component = (ImageRotator)DesignedControl;
         properties = TypeDescriptor.GetProperties(component);
     }
 }