예제 #1
0
        public void ErrorDitherEquality()
        {
            IDither     dither  = KnownDitherings.FloydSteinberg;
            ErrorDither dither2 = ErrorDither.FloydSteinberg;
            ErrorDither dither3 = ErrorDither.FloydSteinberg;

            Assert.True(dither == dither2);
            Assert.True(dither2 == dither);
            Assert.False(dither != dither2);
            Assert.False(dither2 != dither);
            Assert.Equal(dither, dither2);
            Assert.Equal(dither, (object)dither2);
            Assert.Equal(dither.GetHashCode(), dither2.GetHashCode());

            dither = null;
            Assert.False(dither == dither2);
            Assert.False(dither2 == dither);
            Assert.True(dither != dither2);
            Assert.True(dither2 != dither);
            Assert.NotEqual(dither, dither2);
            Assert.NotEqual(dither, (object)dither2);
            Assert.NotEqual(dither?.GetHashCode(), dither2.GetHashCode());

            Assert.True(dither2 == dither3);
            Assert.True(dither3 == dither2);
            Assert.False(dither2 != dither3);
            Assert.False(dither3 != dither2);
            Assert.Equal(dither2, dither3);
            Assert.Equal(dither2, (object)dither3);
            Assert.Equal(dither2.GetHashCode(), dither3.GetHashCode());
        }
예제 #2
0
        /// <summary>
        /// This method pre-seeds the default dithering engine (FloydSteinbergDiffuser) in the AoT compiler for iOS.
        /// </summary>
        /// <typeparam name="TPixel">The pixel format.</typeparam>
        private static void AotCompileDithering <TPixel>()
            where TPixel : unmanaged, IPixel <TPixel>
        {
            ErrorDither   errorDither   = ErrorDither.FloydSteinberg;
            OrderedDither orderedDither = OrderedDither.Bayer2x2;
            TPixel        pixel         = default;

            using (var image = new ImageFrame <TPixel>(Configuration.Default, 1, 1))
            {
                errorDither.Dither(image, image.Bounds(), pixel, pixel, 0, 0, 0);
                orderedDither.Dither(pixel, 0, 0, 0, 0);
            }
        }