Initial sync
This commit is contained in:
144
Test/MapReader.cs
Executable file
144
Test/MapReader.cs
Executable file
@@ -0,0 +1,144 @@
|
||||
// using System.Drawing;
|
||||
// using Nbt.Serialization;
|
||||
// using Nbt.Tag;
|
||||
|
||||
// namespace Nbt.Test;
|
||||
|
||||
// public static class MapReader
|
||||
// {
|
||||
// private static readonly Color[] colorTable = [
|
||||
// Color.Transparent,
|
||||
// Color.FromArgb(127, 178, 56),
|
||||
// Color.FromArgb(247, 233, 163),
|
||||
// Color.FromArgb(199, 199, 199),
|
||||
// Color.FromArgb(255, 0, 0),
|
||||
// Color.FromArgb(160, 160, 255),
|
||||
// Color.FromArgb(167, 167, 167),
|
||||
// Color.FromArgb(0, 124, 0),
|
||||
// Color.FromArgb(255, 255, 255),
|
||||
// Color.FromArgb(164, 168, 184),
|
||||
// Color.FromArgb(151, 109, 77),
|
||||
// Color.FromArgb(112, 112, 112),
|
||||
// Color.FromArgb(64, 64, 255),
|
||||
// Color.FromArgb(143, 119, 72),
|
||||
// Color.FromArgb(255, 252, 245),
|
||||
// Color.FromArgb(216, 127, 51),
|
||||
// Color.FromArgb(178, 76, 216),
|
||||
// Color.FromArgb(102, 153, 216),
|
||||
// Color.FromArgb(229, 229, 51),
|
||||
// Color.FromArgb(127, 204, 25),
|
||||
// Color.FromArgb(242, 127, 165),
|
||||
// Color.FromArgb(76, 76, 76),
|
||||
// Color.FromArgb(153, 153, 153),
|
||||
// Color.FromArgb(76, 127, 153),
|
||||
// Color.FromArgb(127, 63, 178),
|
||||
// Color.FromArgb(51, 76, 178),
|
||||
// Color.FromArgb(102, 76, 51),
|
||||
// Color.FromArgb(102, 127, 51),
|
||||
// Color.FromArgb(153, 51, 51),
|
||||
// Color.FromArgb(25, 25, 25),
|
||||
// Color.FromArgb(250, 238, 77),
|
||||
// Color.FromArgb(92, 219, 213),
|
||||
// Color.FromArgb(74, 128, 255),
|
||||
// Color.FromArgb(0, 217, 58),
|
||||
// Color.FromArgb(129, 86, 49),
|
||||
// Color.FromArgb(112, 2, 0),
|
||||
// Color.FromArgb(209, 177, 161),
|
||||
// Color.FromArgb(159, 82, 36),
|
||||
// Color.FromArgb(149, 87, 108),
|
||||
// Color.FromArgb(112, 108, 138),
|
||||
// Color.FromArgb(186, 133, 36),
|
||||
// Color.FromArgb(103, 117, 53),
|
||||
// Color.FromArgb(160, 77, 78),
|
||||
// Color.FromArgb(57, 41, 35),
|
||||
// Color.FromArgb(135, 107, 98),
|
||||
// Color.FromArgb(87, 92, 92),
|
||||
// Color.FromArgb(122, 73, 88),
|
||||
// Color.FromArgb(76, 62, 92),
|
||||
// Color.FromArgb(76, 50, 35),
|
||||
// Color.FromArgb(76, 82, 42),
|
||||
// Color.FromArgb(142, 60, 46),
|
||||
// Color.FromArgb(37, 22, 16),
|
||||
// Color.FromArgb(189, 48, 49),
|
||||
// Color.FromArgb(148, 63, 97),
|
||||
// Color.FromArgb(92, 25, 29),
|
||||
// Color.FromArgb(22, 126, 134),
|
||||
// Color.FromArgb(58, 142, 140),
|
||||
// Color.FromArgb(86, 44, 62),
|
||||
// Color.FromArgb(20, 180, 133),
|
||||
// Color.FromArgb(100, 100, 100),
|
||||
// Color.FromArgb(216, 175, 147),
|
||||
// Color.FromArgb(127, 167, 150)
|
||||
// ];
|
||||
|
||||
// private static readonly double[] multiplierTable = [
|
||||
// 180.0 / 255.0,
|
||||
// 220.0 / 255.0,
|
||||
// 1.0,
|
||||
// 135.0 / 255.0
|
||||
// ];
|
||||
|
||||
// public static void Main(string[] args)
|
||||
// {
|
||||
// const string inputDir = @"C:\Users\hb68\Desktop\a";
|
||||
// const string outputDir = @"C:\Users\hb68\Desktop\b";
|
||||
// const int width = 128, height = 128;
|
||||
// const int pixelSize = 8;
|
||||
|
||||
// Parallel.ForEach(Directory.EnumerateFiles(inputDir), static file =>
|
||||
// {
|
||||
// INbtTag rootTag;
|
||||
// using (var inputStream = File.OpenRead(file))
|
||||
// {
|
||||
// var reader = NbtReader.Create(inputStream);
|
||||
|
||||
// rootTag = reader.ReadNamedTag().Tag;
|
||||
// }
|
||||
|
||||
// var colors = rootTag["data"]["colors"].AsArray<sbyte>().Value;
|
||||
|
||||
// using var image = new Bitmap(width * pixelSize, height * pixelSize);
|
||||
|
||||
// var k = 0;
|
||||
// for (var i = 0; i < height; i++)
|
||||
// {
|
||||
// for (var j = 0; j < width; j++)
|
||||
// {
|
||||
// var colorId = (byte)colors[k];
|
||||
// var baseColorId = colorId / 4;
|
||||
// var colorOffset = colorId % 4;
|
||||
|
||||
// var baseColor = colorTable[baseColorId];
|
||||
// var multiplier = multiplierTable[colorOffset];
|
||||
|
||||
// var color = Color.FromArgb(baseColor.A, (int)(baseColor.R * multiplier), (int)(baseColor.G * multiplier), (int)(baseColor.B * multiplier));
|
||||
|
||||
// if (pixelSize > 1)
|
||||
// {
|
||||
// var imgI = i * pixelSize;
|
||||
// var imgJ = j * pixelSize;
|
||||
|
||||
// for (var xOff = 0; xOff < pixelSize; xOff++)
|
||||
// {
|
||||
// for (var yOff = 0; yOff < pixelSize; yOff++)
|
||||
// {
|
||||
// image.SetPixel(imgJ + xOff, imgI + yOff, color);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// image.SetPixel(j, i, color);
|
||||
// }
|
||||
|
||||
// k++;
|
||||
// }
|
||||
// }
|
||||
|
||||
// var fileName = Path.GetFileName(file);
|
||||
// image.Save(Path.Combine(outputDir, $"{fileName}.png"), System.Drawing.Imaging.ImageFormat.Png);
|
||||
|
||||
// Console.WriteLine(fileName);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
Reference in New Issue
Block a user