コード例 #1
0
        public static AvgColor[] ExtendHeight(this AvgColor[] colors, int height)
        {
            var extended = new AvgColor[colors.Length * height];

            for (var i = 0; i < height; i++)
            {
                Array.Copy(colors, 0, extended, i * colors.Length, colors.Length);
            }

            return(extended);
        }
コード例 #2
0
        public static AvgColor[] FlipHorizontal(this AvgColor[] colors, int width)
        {
            if (colors == null || width <= 0)
            {
                return(colors);
            }

            var flipped = new AvgColor[colors.Length];

            for (var i = 0; i < colors.Length; i += width)
            {
                for (int j = 0, k = width - 1; j < width; ++j, --k)
                {
                    flipped[i + j] = colors[i + k];
                }
            }

            return(flipped);
        }
コード例 #3
0
        public static AvgColor[] FlipVertical(this AvgColor[] colors, int width)
        {
            if (colors == null || width <= 0)
            {
                return(colors);
            }

            var flipped = new AvgColor[colors.Length];

            for (int i = 0, j = colors.Length - width; i < colors.Length; i += width, j -= width)
            {
                for (var k = 0; k < width; ++k)
                {
                    flipped[i + k] = colors[j + k];
                }
            }

            return(flipped);
        }