Small changes
This commit is contained in:
parent
e532c3ef1e
commit
99198cc378
@ -173,14 +173,15 @@ public class D2_FaceParts
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetSeasonABDirectory(string d2ResultsFullGroupDirectory, MappingFromItem mappingFromItem)
|
private string GetSeasonABDirectory(string d2ResultsFullGroupDirectory, MappingFromItem mappingFromItem, bool any)
|
||||||
{
|
{
|
||||||
string result;
|
string result;
|
||||||
string minimumDateYear = mappingFromItem.MinimumDateTime.ToString("yyyy");
|
string minimumDateYear = mappingFromItem.MinimumDateTime.ToString("yyyy");
|
||||||
DateTime dateTime = mappingFromItem.DateTimeOriginal is null ? mappingFromItem.MinimumDateTime : mappingFromItem.DateTimeOriginal.Value;
|
DateTime dateTime = mappingFromItem.DateTimeOriginal is null ? mappingFromItem.MinimumDateTime : mappingFromItem.DateTimeOriginal.Value;
|
||||||
(int _, string seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeasonAB(dateTime.DayOfYear);
|
(int season, string seasonName) = Shared.Models.Stateless.Methods.IProperty.GetSeasonAB(dateTime.DayOfYear);
|
||||||
string year = mappingFromItem.DateTimeOriginal is null ? $"{minimumDateYear[1..]}{minimumDateYear[0]}" : mappingFromItem.DateTimeOriginal.Value.ToString("yyyy");
|
string year = mappingFromItem.DateTimeOriginal is null ? $"{minimumDateYear[1..]}{minimumDateYear[0]}" : mappingFromItem.DateTimeOriginal.Value.ToString("yyyy");
|
||||||
result = Path.Combine(d2ResultsFullGroupDirectory, $"[{_PropertyConfiguration.ResultContent}]", $"{year} {seasonName}");
|
string directory = Path.Combine(d2ResultsFullGroupDirectory, $"[{_PropertyConfiguration.ResultContent}]", $"{year}.{season} {seasonName}");
|
||||||
|
result = any ? Path.Combine(directory, "---") : Path.Combine(directory, "Complete");
|
||||||
if (!Directory.Exists(result))
|
if (!Directory.Exists(result))
|
||||||
_ = Directory.CreateDirectory(result);
|
_ = Directory.CreateDirectory(result);
|
||||||
return result;
|
return result;
|
||||||
@ -220,8 +221,9 @@ public class D2_FaceParts
|
|||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
Pen pen;
|
Brush brush;
|
||||||
int pointSize;
|
int pointSize;
|
||||||
|
bool any = false;
|
||||||
FaceFile faceFile;
|
FaceFile faceFile;
|
||||||
bool? isDefaultName;
|
bool? isDefaultName;
|
||||||
List<long> personKeys = [];
|
List<long> personKeys = [];
|
||||||
@ -231,15 +233,16 @@ public class D2_FaceParts
|
|||||||
string? maker = IMetadata.GetMaker(exifDirectory);
|
string? maker = IMetadata.GetMaker(exifDirectory);
|
||||||
string? model = IMetadata.GetModel(exifDirectory);
|
string? model = IMetadata.GetModel(exifDirectory);
|
||||||
MetadataExtractor.GeoLocation? geoLocation = IMetadata.GeoLocation(exifDirectory);
|
MetadataExtractor.GeoLocation? geoLocation = IMetadata.GeoLocation(exifDirectory);
|
||||||
string directory = GetSeasonABDirectory(d2ResultsFullGroupDirectory, mappingFromItem);
|
|
||||||
using Image image = Image.FromFile(mappingFromItem.ResizedFileHolder.FullName);
|
using Image image = Image.FromFile(mappingFromItem.ResizedFileHolder.FullName);
|
||||||
using Graphics graphics = Graphics.FromImage(image);
|
using Graphics graphics = Graphics.FromImage(image);
|
||||||
foreach (Shared.Models.Face face in faces)
|
foreach (Shared.Models.Face face in faces)
|
||||||
{
|
{
|
||||||
if (face.Location is null || face.FaceEncoding is null || face.FaceParts is null || face.FaceParts.Count == 0)
|
if (face.Location is null || face.FaceEncoding is null || face.FaceParts is null || face.FaceParts.Count == 0)
|
||||||
continue;
|
continue;
|
||||||
|
if (!any && face.Mapping?.MappingFromPerson is null)
|
||||||
|
any = true;
|
||||||
mappingFromPerson = face.Mapping?.MappingFromPerson;
|
mappingFromPerson = face.Mapping?.MappingFromPerson;
|
||||||
pen = mappingFromPerson is null ? Pens.Red : Pens.GreenYellow;
|
brush = mappingFromPerson is null ? Brushes.Red : Brushes.GreenYellow;
|
||||||
isDefaultName = mappingFromPerson is null ? null : Shared.Models.Stateless.Methods.IPerson.IsDefaultName(mappingFromPerson);
|
isDefaultName = mappingFromPerson is null ? null : Shared.Models.Stateless.Methods.IPerson.IsDefaultName(mappingFromPerson);
|
||||||
if (mappingFromPerson is not null && isDefaultName is not null && !isDefaultName.Value)
|
if (mappingFromPerson is not null && isDefaultName is not null && !isDefaultName.Value)
|
||||||
personKeys.Add(mappingFromPerson.PersonKey);
|
personKeys.Add(mappingFromPerson.PersonKey);
|
||||||
@ -259,17 +262,18 @@ public class D2_FaceParts
|
|||||||
foreach ((FacePart facePart, FacePoint[] facePoints) in face.FaceParts)
|
foreach ((FacePart facePart, FacePoint[] facePoints) in face.FaceParts)
|
||||||
{
|
{
|
||||||
foreach (FacePoint facePoint in facePoints)
|
foreach (FacePoint facePoint in facePoints)
|
||||||
graphics.DrawEllipse(pen, facePoint.X - pointSize, facePoint.Y - pointSize, pointSize * 2, pointSize * 2);
|
graphics.FillEllipse(brush, facePoint.X - pointSize, facePoint.Y - pointSize, pointSize * 2, pointSize * 2);
|
||||||
if (facePart == FacePart.Chin)
|
if (facePart == FacePart.Chin)
|
||||||
continue;
|
continue;
|
||||||
if (facePoints.Length < 3)
|
if (facePoints.Length < 3)
|
||||||
continue;
|
continue;
|
||||||
x = (int)(from l in facePoints select l.X).Average();
|
x = (int)(from l in facePoints select l.X).Average();
|
||||||
y = (int)(from l in facePoints select l.Y).Average();
|
y = (int)(from l in facePoints select l.Y).Average();
|
||||||
graphics.DrawEllipse(Pens.Purple, x - pointSize, y - pointSize, pointSize * 2, pointSize * 2);
|
graphics.FillEllipse(Brushes.Purple, x - pointSize, y - pointSize, pointSize * 2, pointSize * 2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ = graphics.Save();
|
_ = graphics.Save();
|
||||||
|
string directory = GetSeasonABDirectory(d2ResultsFullGroupDirectory, mappingFromItem, any);
|
||||||
SaveImage(mappingFromItem, directory, image, faceFiles);
|
SaveImage(mappingFromItem, directory, image, faceFiles);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -306,7 +310,7 @@ public class D2_FaceParts
|
|||||||
{
|
{
|
||||||
int x;
|
int x;
|
||||||
int y;
|
int y;
|
||||||
Pen pen;
|
Brush brush;
|
||||||
int pointSize;
|
int pointSize;
|
||||||
FaceFile faceFile;
|
FaceFile faceFile;
|
||||||
MappingFromPerson? mappingFromPerson;
|
MappingFromPerson? mappingFromPerson;
|
||||||
@ -321,7 +325,7 @@ public class D2_FaceParts
|
|||||||
continue;
|
continue;
|
||||||
using Image image = Image.FromFile(mappingFromItem.ResizedFileHolder.FullName);
|
using Image image = Image.FromFile(mappingFromItem.ResizedFileHolder.FullName);
|
||||||
mappingFromPerson = face.Mapping?.MappingFromPerson;
|
mappingFromPerson = face.Mapping?.MappingFromPerson;
|
||||||
pen = mappingFromPerson is null ? Pens.Red : Pens.GreenYellow;
|
brush = mappingFromPerson is null ? Brushes.Red : Brushes.GreenYellow;
|
||||||
faceFile = new(face.Mapping?.MappingFromLocation?.AreaPermyriad,
|
faceFile = new(face.Mapping?.MappingFromLocation?.AreaPermyriad,
|
||||||
face.Mapping?.MappingFromLocation?.ConfidencePercent,
|
face.Mapping?.MappingFromLocation?.ConfidencePercent,
|
||||||
geoLocation?.ToDmsString(),
|
geoLocation?.ToDmsString(),
|
||||||
@ -338,14 +342,14 @@ public class D2_FaceParts
|
|||||||
foreach ((FacePart facePart, FacePoint[] facePoints) in face.FaceParts)
|
foreach ((FacePart facePart, FacePoint[] facePoints) in face.FaceParts)
|
||||||
{
|
{
|
||||||
foreach (FacePoint facePoint in facePoints)
|
foreach (FacePoint facePoint in facePoints)
|
||||||
graphics.DrawEllipse(pen, facePoint.X - pointSize, facePoint.Y - pointSize, pointSize * 2, pointSize * 2);
|
graphics.FillEllipse(brush, facePoint.X - pointSize, facePoint.Y - pointSize, pointSize * 2, pointSize * 2);
|
||||||
if (facePart == FacePart.Chin)
|
if (facePart == FacePart.Chin)
|
||||||
continue;
|
continue;
|
||||||
if (facePoints.Length < 3)
|
if (facePoints.Length < 3)
|
||||||
continue;
|
continue;
|
||||||
x = (int)(from l in facePoints select l.X).Average();
|
x = (int)(from l in facePoints select l.X).Average();
|
||||||
y = (int)(from l in facePoints select l.Y).Average();
|
y = (int)(from l in facePoints select l.Y).Average();
|
||||||
graphics.DrawEllipse(Pens.Purple, x - pointSize, y - pointSize, pointSize * 2, pointSize * 2);
|
graphics.FillEllipse(Brushes.Purple, x - pointSize, y - pointSize, pointSize * 2, pointSize * 2);
|
||||||
}
|
}
|
||||||
_ = graphics.Save();
|
_ = graphics.Save();
|
||||||
SaveImage(fileName, image, faceFile);
|
SaveImage(fileName, image, faceFile);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user