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"); }
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")); }
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; } } }