DEP08SIASM - v2.43.0 - Running but
with nuget_System.Text.Json v5.0.1
This commit is contained in:
@ -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;
|
||||
}
|
||||
|
||||
}
|
Reference in New Issue
Block a user