Exemplo n.º 1
0
        public void GrayScaleImageTest(ImageData imageData)
        {
            byte[] a = Convert.FromBase64String(imageData.Base64);
            //MemoryStream memoryStream = new MemoryStream(a);
            //Image image = System.Drawing.Image.FromStream(memoryStream);
            Analyse        z = new Analyse();
            MWNumericArray mWNumericArray = a;
            MWArray        I     = z.analyseImage(mWNumericArray, imageData.CoordinateXY[0], imageData.CoordinateXY[1]);
            MWNumericArray I_num = I.ToArray();

            Byte[] I_bytes = (Byte[])I_num.ToVector(MWArrayComponent.Real);

            int w = I.Dimensions[0];
            int h = I.Dimensions[1];

            Bitmap       bmp = new Bitmap(w, h, PixelFormat.Format8bppIndexed);
            ColorPalette cp  = bmp.Palette;

            for (Int32 i = 0; i < 256; ++i)
            {
                cp.Entries[i] = Color.FromArgb(255, i, i, i);
            }

            bmp.Palette = cp;

            BitmapData data = bmp.LockBits((new Rectangle(0, 0, bmp.Width, bmp.Height)), ImageLockMode.WriteOnly, bmp.PixelFormat);

            Marshal.Copy(I_bytes, 0, data.Scan0, I_bytes.Length);
            bmp.UnlockBits(data);
            bmp.Save("image.png", ImageFormat.Png);
        }
Exemplo n.º 2
0
        public void ReadImage(ImageData imageData)
        {
            byte[]       a            = Convert.FromBase64String(imageData.Base64);
            MemoryStream memoryStream = new MemoryStream(a);

            Image image = System.Drawing.Image.FromStream(memoryStream);

            image.Save(imageData.guid.ToString() + ".png", ImageFormat.Png);

            try
            {
                Analyse   z = new Analyse();
                MWArray[] I = z.analyseImage(5, imageData.guid.ToString() + ".png", imageData.CoordinateXY[0], imageData.CoordinateXY[1]);
                //          MWNumericArray I_num = I[4].ToArray();
                //        Byte[] I_bytess = (Byte[])I_num.ToVector(MWArrayComponent.Real);
                //     Byte[] I_bytes = I_bytess.SelectMany(value => BitConverter.GetBytes(value)).ToArray();

                int w = I[4].Dimensions[0];
                int h = I[4].Dimensions[1];
                //I[3] = null;
                imageData.Base64 = null;
                Bitmap       bmp = new Bitmap(w, h, PixelFormat.Format8bppIndexed);
                ColorPalette cp  = bmp.Palette;

                for (Int32 i = 0; i < 256; ++i)
                {
                    cp.Entries[i] = Color.FromArgb(255, i, i, i);
                }

                bmp.Palette = cp;

                BitmapData data = bmp.LockBits((new Rectangle(0, 0, bmp.Width, bmp.Height)), ImageLockMode.WriteOnly, bmp.PixelFormat);
                //      Marshal.Copy(I_bytess, 0, data.Scan0, I_bytess.Length);
                bmp.UnlockBits(data);
                bmp.Save(imageData.guid.ToString() + ".png", ImageFormat.Png);
                byte[] arr = File.ReadAllBytes(imageData.guid.ToString() + ".png");
                imageData.Base64          = Convert.ToBase64String(arr);
                imageData.Matlab          = new FromMatlab();
                imageData.Matlab.Width    = I[0].ToString();
                imageData.Matlab.Height   = I[1].ToString();
                imageData.Matlab.Arena    = I[2].ToString();
                double[,] ale             = (double[, ])I[3].ToArray();
                imageData.Matlab.MatrixC1 = Math.Round(((double [, ])I[3].ToArray())[0, 0], 2).ToString();
                imageData.Matlab.MatrixC2 = Math.Round(((double[, ])I[3].ToArray())[1, 0], 2).ToString();
                imageData.Matlab.MatrixC3 = Math.Round(((double[, ])I[3].ToArray())[2, 0], 2).ToString();

                imageData.IsFinish();
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
            }
        }