DEP08SIASM - v2.43.0 - Running but

with nuget_System.Text.Json v5.0.1
This commit is contained in:
2022-06-28 11:57:49 -07:00
parent c7884587bb
commit 1a152fafe0
75 changed files with 3067 additions and 2859 deletions

View File

@ -8,6 +8,7 @@ using System.Drawing;
using System.IO;
using System.Linq;
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Adaptation.FileHandlers.jpeg;
@ -29,7 +30,7 @@ public class ProcessData : IProcessData
List<object> Shared.Properties.IProcessData.Details => _Details;
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, int startX, int startY, int endX, int endY, List<(string, Color[])> colorCollections)
public ProcessData(IFileRead fileRead, Logistics logistics, List<FileInfo> fileInfoCollection, int startX, int startY, int endX, int endY, Size size, List<Tuple<string, Color[]>> colorCollections)
{
if (logistics is null)
{ }
@ -38,7 +39,7 @@ public class ProcessData : IProcessData
_Details = new List<object>();
MesEntity = logistics.MesEntity;
_Log = LogManager.GetLogger(typeof(ProcessData));
Parse(fileRead, fileInfoCollection, startX, startY, endX, endY, colorCollections);
Parse(fileRead, fileInfoCollection, startX, startY, endX, endY, size, colorCollections);
}
private static string Get(string value, bool useSplitForMID)
@ -104,7 +105,7 @@ public class ProcessData : IProcessData
#nullable enable
#pragma warning disable CA1416
private static Color[] Get(string reportFullPath, int startX, int startY, int endX, int endY)
private static (Size, Color[]) Get(string reportFullPath, int startX, int startY, int endX, int endY)
{
Color color;
List<Color> colors = new();
@ -119,7 +120,7 @@ public class ProcessData : IProcessData
colors.Add(color);
}
}
return colors.ToArray();
return new(bitmap.Size, colors.ToArray());
}
private static System.Drawing.Imaging.ImageFormat Get(string extension)
@ -137,7 +138,7 @@ public class ProcessData : IProcessData
return imageFormat;
}
private static (Color[], int, int) Get(IFileRead fileRead, List<FileInfo> fileInfoCollection, string extension, int startX, int startY, int endX, int endY)
private static (Color[], int, int) Get(IFileRead fileRead, List<FileInfo> fileInfoCollection, int startX, int startY, int endX, int endY, string extension, Size size)
{
Color color;
List<Color> colors = new();
@ -148,6 +149,8 @@ public class ProcessData : IProcessData
string saveFileName = Path.ChangeExtension(fileRead.ReportFullPath, extension);
if (bitmap is null)
throw new Exception($"Couldn't load image from <{fileRead.ReportFullPath}>");
if (!size.Equals(bitmap.Size))
throw new Exception("Source size doesn't match master image size <http://10.95.154.28/set_output?input=0&output=0&venc_framerate=60&venc_gop=300&venc_width=640&venc_height=480&venc_bitrate=32000&http_ts_uri=/0.ts&http_flv_uri=/0.flv&rtsp_uri=/0&rtmp_enable=0&rtmp_uri=/0&rtmp_publish_uri=rtmp%3A%2F%2F192.168.1.169%2Flive%2F0&rtmp_publish_enable=0&http_ts_enable=1&http_flv_enable=1&rtsp_enable=1&venc_profile=0&http_hls_uri=/0.m3u8&http_hls_enable=0&venc_width_height_same_as_input=0&multicast_ip=238.0.0.1&multicast_port=1234&multicast_enable=0&venc_codec=265&srt_enable=0&srt_port=9000&srt_publish_enable=0&srt_publish_uri=srt%3A%2F%2F192.168.1.169%3A9000&srt_key=0123456789&srt_key_enable=0&max_qp=42&venc_rc_mode=0&ts_muxrate=0&_=1655307485097>");
for (int x = startX; x < endX; x++)
{
for (int y = startY; y < endY; y++)
@ -209,16 +212,20 @@ public class ProcessData : IProcessData
File.WriteAllLines(textFileName, lines);
}
internal static List<(string, Color[])> GetColorCollections(int startX, int startY, int endX, int endY, string masterImageDirectory)
internal static List<(string, Size, Color[])> GetColorCollections(int startX, int startY, int endX, int endY, string masterImageDirectory)
{
List<(string, Color[])> results = new();
List<(string, Size, Color[])> results = new();
(Size Size, Color[] Colors) result;
string[] files = Directory.GetFiles(masterImageDirectory, "*.jpeg", SearchOption.TopDirectoryOnly);
foreach (string file in files)
results.Add(new(file, Get(file, startX, startY, endX, endY)));
{
result = Get(file, startX, startY, endX, endY);
results.Add(new(file, result.Size, result.Colors));
}
return results;
}
private void Parse(IFileRead fileRead, List<FileInfo> fileInfoCollection, int startX, int startY, int endX, int endY, List<(string, Color[])> colorCollections)
private void Parse(IFileRead fileRead, List<FileInfo> fileInfoCollection, int startX, int startY, int endX, int endY, Size size, List<Tuple<string, Color[]>> colorCollections)
{
Red = 0;
Green = 0;
@ -228,7 +235,7 @@ public class ProcessData : IProcessData
const int thresHold = 70;
const string extension = ".tiff";
List<(string File, int TotalDelta)> totalDeltaCollection = new();
(Color[] sourceColors, int width, int height) = Get(fileRead, fileInfoCollection, extension, startX, startY, endX, endY);
(Color[] sourceColors, int width, int height) = Get(fileRead, fileInfoCollection, startX, startY, endX, endY, extension, size);
foreach ((string file, Color[] colors) in colorCollections)
{
totalDelta = 0;
@ -274,4 +281,23 @@ public class ProcessData : IProcessData
_Details.Add(Text);
}
#nullable enable
internal static List<Description> GetDescriptions(JsonElement[] jsonElements)
{
List<Description> results = new();
Description? description;
JsonSerializerOptions jsonSerializerOptions = new() { NumberHandling = JsonNumberHandling.AllowReadingFromString | JsonNumberHandling.WriteAsString };
foreach (JsonElement jsonElement in jsonElements)
{
if (jsonElement.ValueKind != JsonValueKind.Object)
throw new Exception();
description = JsonSerializer.Deserialize<Description>(jsonElement.ToString(), jsonSerializerOptions);
if (description is null)
continue;
results.Add(description);
}
return results;
}
}