Exemplo n.º 1
0
        static void Main(string[] args)
        {
            /*          var pp = new BuddhabrotPlotter(3000, 3000);

                      var m = FileSaver.ReadMatrix("1_6/1_6.csv").Result;

                      FileSaver.SaveMatrix(m, "aa_n" + ".csv").Wait();
                      var ppp = pp.MatrixToImage(m).Result;
                      FileSaver.SaveImagePng(ppp, "aa_n" + ".png").Wait();

                      m = FileSaver.ReadMatrix("aa_n.csv").Result;

                      FileSaver.SaveMatrix(m, "aa_n2" + ".csv").Wait();
                      ppp = pp.MatrixToImage(m).Result;
                      FileSaver.SaveImagePng(ppp, "aa_n2" + ".png").Wait();

                      m = FileSaver.ReadMatrix("aa_n2.csv").Result;

                      FileSaver.SaveMatrix(m, "aa_n3" + ".csv").Wait();
                      ppp = pp.MatrixToImage(m).Result;
                      FileSaver.SaveImagePng(ppp, "aa_n3" + ".png").Wait();

                      return;

              //            var ppp = pp.MatrixToImage(m).Result;
                      FileSaver.SaveTransposedMatrix(m, "aaa_t" + ".csv").Wait();
                      FileSaver.SaveImagePng(ppp, "aaa" + ".png").Wait();

                      var m_t = FileSaver.ReadMatrix("aaa_t.csv").Result;
                      var ppp_t = pp.MatrixToImage(m_t).Result;
                      FileSaver.SaveMatrix(m_t, "aaa_t2" + ".csv").Wait();
                      FileSaver.SaveImagePng(ppp_t, "aaa_t" + ".png").Wait();

                      var m_t2 = FileSaver.ReadMatrix("aaa_t2.csv").Result;
                      var ppp_t2 = pp.MatrixToImage(m_t2).Result;
                      FileSaver.SaveMatrix(m_t2, "aaa_t22" + ".csv").Wait();
                      FileSaver.SaveImagePng(ppp_t2, "aaa_t2" + ".png").Wait();

                      return;
              */

            byte ColorR = 255;
            byte ColorG = 255;
            byte ColorB = 255;
            int ColorAlpha = 1;
            long AlphaThreshold = 0;

            Console.Write("Folder Name:");
            var folderName = Console.ReadLine();

            if (!Directory.Exists(folderName))
            {
                Console.WriteLine("Folder not exists.");
                return;
            }

            Console.Write("Color Alpha:");
            var tmpColorA = Console.ReadLine();
            if (!int.TryParse(tmpColorA, out ColorAlpha))
            {
                ColorAlpha = 1;
            }

            Console.Write("A (Threashold):");
            var tmpThreshold = Console.ReadLine();

            Console.Write("R:");
            var tmpR = Console.ReadLine();
            Console.Write("G:");
            var tmpG = Console.ReadLine();
            Console.Write("B:");
            var tmpB = Console.ReadLine();

            if (!byte.TryParse(tmpR, out ColorR))
            {
                ColorR = 255;
            }
            if (!byte.TryParse(tmpG, out ColorG))
            {
                ColorG = 255;
            }
            if (!byte.TryParse(tmpB, out ColorB))
            {
                ColorB = 255;
            }
            if (!long.TryParse(tmpThreshold, out AlphaThreshold))
            {
                AlphaThreshold = 0;
            }

            var color = Color.FromRgb(ColorR, ColorG, ColorB);

            Console.WriteLine("Computing ");

            var date = DateTime.Now.ToString("yyyyMMddHHmmss");
            var files = Directory.GetFiles(folderName, "*.csv");

            long[,] pixelMatrix = FileSaver.ReadMatrix(files.First()).Result;

            int ImagePixelWidth = pixelMatrix.GetLength(0);
            int ImagePixelHeight = pixelMatrix.GetLength(1);

            foreach (var item in files.Skip(1))
            {
                var ps = FileSaver.ReadMatrix(item).Result;
                pixelMatrix = FileSaver.AddMatrix(pixelMatrix, ps);
                Console.WriteLine("Add: " + item);
            }

            var p = new BuddhabrotPlotter(ImagePixelWidth, ImagePixelHeight, color);
            p.AlphaMagnification = ColorAlpha;
            p.AlphaThreshold = AlphaThreshold;

            FileSaver.SaveMatrix(pixelMatrix, folderName + "/" + folderName + ".csv").Wait();
            Console.Write("Mat Saved   ");
            var img = p.MatrixToImage(pixelMatrix).Result;
            FileSaver.SaveImagePng(img, folderName + "/" + folderName + ".png").Wait();
            Console.WriteLine("Image Saved");
        }
Exemplo n.º 2
0
        public async void Calculate()
        {
            var color = Color.FromRgb(ColorR, ColorG, ColorB);
            var p = new BuddhabrotPlotter(ImagePixelWidth, ImagePixelHeight, color);
            p.AlphaMagnification = ColorAlpha;

            if (DoAllPixel)
            {
                pixelMatrix = await p.Excute(Iteration);
                await Task.Factory.StartNew(() => MainImage = p.MatrixToImage(pixelMatrix).Result);
            }
            else
            {
                pixelMatrix = await p.ExcuteRandom(Iteration, PlotCount);
                await Task.Factory.StartNew(() => MainImage = p.MatrixToImage(pixelMatrix).Result);
            }
            IsRunning = false;
            Messenger.Raise(new InformationMessage("処理が終了しました。", "", "Info"));
        }
Exemplo n.º 3
0
        static void Main(string[] args)
        {
            const byte ColorR = 255;
            const byte ColorG = 255;
            const byte ColorB = 255;
            const int ImagePixelWidth = 3000;
            const int ImagePixelHeight = 3000;

            //            int PlotCount = 10000;
            //            int Iteration = 1000000;
            //            int count = 10000;

            Console.Write("Plot Count:");
            int PlotCount = Convert.ToInt32(Console.ReadLine());
            Console.Write("Iteratoin:");
            int Iteration = Convert.ToInt32(Console.ReadLine());
            Console.Write("All Count:");
            int count = Convert.ToInt32(Console.ReadLine());

            //            int PlotCount = 100;
            //          int Iteration = 1000;

            var date = DateTime.Now.ToString("yyyyMMddHHmmss");
            var fileSafix = "result/" + date + "_" + Iteration + "_" + PlotCount;
            if (!Directory.Exists("result")) Directory.CreateDirectory("result"); ;

            int ColorAlpha = 1;

            var color = Color.FromRgb(ColorR, ColorG, ColorB);

            for (int i = 0; i < count; i++)
            {
                try
                {
                    var p = new BuddhabrotPlotter(ImagePixelWidth, ImagePixelHeight, color);
                    p.AlphaMagnification = ColorAlpha;

                    Console.Write(i + ":");

                    long[,] pixelMatrix;
            //                    WriteableBitmap MainImage;

                    pixelMatrix = p.ExcuteRandom(Iteration, PlotCount).Result;
                    FileSaver.SaveMatrix(pixelMatrix, fileSafix + i + ".csv").Wait();
                    Console.Write("Mat Saved   ");
                    //                    MainImage = p.MatrixToImage(pixelMatrix).Result;
                    //                   FileSaver.SaveImagePng(MainImage, fileSafix + i + ".png").Wait();
                    //                    Console.WriteLine("Image Saved");
                }
                catch (AggregateException ae)
                {
                    var sb = new StringBuilder(DateTime.Now.ToString());
                    sb.AppendLine();
                    foreach (var item in ae.InnerExceptions)
                    {
                        sb.AppendLine(Utils.GetExceptionInfoString(item));
                    }
                    var message = sb.ToString();
                    Utils.WriteNormalLog(message);
                    Console.WriteLine(message);
                    continue;
                }
            }
        }