コード例 #1
0
ファイル: Image.cs プロジェクト: antmillar/NEAT_Camo
        public static Bitmap BitmapFromPixels(Matrix <double> pixels, int subdivisions)
        {
            //USE BYTES INSTEAD??
            Bitmap bitmap;

            //Color[] colors = new Color[pixels.RowCount];

            //for (int i = 0; i < pixels.RowCount; i++)
            //{
            //    if (pixels.ColumnCount == 3)
            //    {
            //        colors[i] = Color.FromArgb((int)(pixels[i, 0] * 255.0), (int)(pixels[i, 1] * 255.0), (int)(pixels[i, 2] * 255.0));
            //    }
            //    else
            //    {
            //        colors[i] = Color.FromArgb((int)(pixels[i, 0] * 255.0), (int)(pixels[i, 0] * 255.0), (int)(pixels[i, 0] * 255.0));
            //    }
            //}
            var colors = pixels.ToColumnMajorArray();

            var arrToBitmap = new Accord.Imaging.Converters.ArrayToImage(subdivisions, subdivisions);

            arrToBitmap.Convert(colors, out bitmap);
            //bitmap.Save(@"C:\Users\antmi\pictures\testing.png");
            return(bitmap);
        }
コード例 #2
0
        /// <summary>
        /// Obtain a grayscale UnmanagedImage object from
        /// a squeezed color matrix.
        /// </summary>
        /// <param name="matrix">Original matrix.</param>
        /// <param name="width">Image width.</param>
        /// <param name="height">Image height.</param>
        /// <returns>Color unmanaged image.</returns>
        private static UnmanagedImage ColorMatrixToGrayImage(Color[] matrix, int width, int height)
        {
            var            data  = new byte[matrix.Length];
            UnmanagedImage image = null;

            for (int i = 0; i < matrix.Length; i++)
            {
                data[i] = (byte)(1 / 3.0 * ((float)matrix[i].R + (float)matrix[i].G + (float)matrix[i].B));
            }

            var converter = new Accord.Imaging.Converters.ArrayToImage(width, height);

            converter.Convert(data, out image);

            return(image);
        }
コード例 #3
0
        /// <summary>
        /// Obtain an UnmanagedImage object from
        /// a squeezed color matrix.
        /// </summary>
        /// <param name="matrix">Original matrix.</param>
        /// <param name="width">Image width.</param>
        /// <param name="height">Image height.</param>
        /// <returns>Color unmanaged image.</returns>
        private static UnmanagedImage ColorMatrixToImage(Color[] matrix, int width, int height)
        {
            var            data  = new System.Drawing.Color[matrix.Length];
            UnmanagedImage image = null;

            for (int i = 0; i < matrix.Length; i++)
            {
                Color color = matrix[i];
                data[i] = System.Drawing.Color.FromArgb((int)color.PackedValue);
            }

            var converter = new Accord.Imaging.Converters.ArrayToImage(width, height);

            converter.Convert(data, out image);

            return(image);
        }
コード例 #4
0
ファイル: Image.cs プロジェクト: antmillar/NEAT_Camo
        public static Bitmap BitmapFromHSL(Matrix <double> hsls, int subdivisions)
        {
            //USE BYTES INSTEAD??
            Bitmap bitmap;

            Color[] colors = new Color[hsls.RowCount];

            for (int i = 0; i < hsls.RowCount; i++)
            {
                colors[i] = ColorScale.ColorFromHSL(hsls[i, 0], hsls[i, 1], hsls[i, 2]);
            }

            var arrToBitmap = new Accord.Imaging.Converters.ArrayToImage(subdivisions, subdivisions);

            arrToBitmap.Convert(colors, out bitmap);
            //bitmap.Save(@"C:\Users\antmi\pictures\testing.png");
            return(bitmap);
        }