Removed SaveExtraLargeBitmapThumbnail
This commit is contained in:
@ -27,8 +27,6 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Humanizer.Core" Version="2.14.1" />
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Core" Version="1.1.4" />
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell" Version="1.1.4" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0" />
|
||||
<PackageReference Include="Microsoft.Extensions.Hosting" Version="7.0.0" />
|
||||
|
@ -1,5 +1,4 @@
|
||||
using Microsoft.Extensions.Configuration;
|
||||
using Microsoft.WindowsAPICodePack.Shell;
|
||||
using Phares.Shared;
|
||||
using Serilog;
|
||||
using System.Diagnostics;
|
||||
@ -177,7 +176,9 @@ public partial class Form : System.Windows.Forms.Form
|
||||
int? id;
|
||||
string? message;
|
||||
string checkFile;
|
||||
TimeSpan timeSpan;
|
||||
DateTime? dateTime;
|
||||
DateTime?[] dateTimes;
|
||||
FileHolder fileHolder;
|
||||
bool isIgnoreExtension;
|
||||
string checkFileExtension;
|
||||
@ -188,7 +189,8 @@ public partial class Form : System.Windows.Forms.Form
|
||||
const string jpeg = ".jpeg";
|
||||
_InnerProgressBar.Visible = true;
|
||||
bool isValidImageFormatExtension;
|
||||
string? extraLargeBitmapThumbnail;
|
||||
bool nameWithoutExtensionIsIdFormat;
|
||||
IReadOnlyList<MetadataExtractor.Directory> directories;
|
||||
string[] files = Directory.GetFiles(directory, searchPattern, SearchOption.TopDirectoryOnly);
|
||||
if (files.All(l => l.EndsWith(".id")))
|
||||
{
|
||||
@ -207,7 +209,8 @@ public partial class Form : System.Windows.Forms.Form
|
||||
continue;
|
||||
isValidImageFormatExtension = _Configuration.PropertyConfiguration.ValidImageFormatExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
isIgnoreExtension = isValidImageFormatExtension && _Configuration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
if (IProperty.NameWithoutExtensionIsIdFormat(fileHolder))
|
||||
nameWithoutExtensionIsIdFormat = IProperty.NameWithoutExtensionIsIdFormat(fileHolder);
|
||||
if (!isIgnoreExtension && isValidImageFormatExtension)
|
||||
{
|
||||
if (fileHolder.ExtensionLowered == jpeg)
|
||||
{
|
||||
@ -215,28 +218,28 @@ public partial class Form : System.Windows.Forms.Form
|
||||
File.Move($"{fileHolder.FullName}.id", Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension}{jpg}.id"));
|
||||
File.Move(fileHolder.FullName, Path.Combine(fileHolder.DirectoryName, $"{fileHolder.NameWithoutExtension}{jpg}"));
|
||||
}
|
||||
continue;
|
||||
if (nameWithoutExtensionIsIdFormat)
|
||||
continue;
|
||||
}
|
||||
(dateTimes, id, message) = IProperty.Get(fileHolder, isIgnoreExtension, isValidImageFormatExtension);
|
||||
minimumDateTime = dateTimes.Min();
|
||||
if (minimumDateTime is null || !isIgnoreExtension && isValidImageFormatExtension)
|
||||
{
|
||||
dateTime = IProperty.GetDateTimeFromName(fileHolder);
|
||||
if (dateTime is null || minimumDateTime is null)
|
||||
timeSpan = new TimeSpan(0);
|
||||
else
|
||||
timeSpan = new(Math.Abs(minimumDateTime.Value.Ticks - dateTime.Value.Ticks));
|
||||
}
|
||||
if (!isIgnoreExtension && isValidImageFormatExtension)
|
||||
extraLargeBitmapThumbnail = null;
|
||||
else
|
||||
{
|
||||
extraLargeBitmapThumbnail = SaveExtraLargeBitmapThumbnail(fileHolder);
|
||||
if (extraLargeBitmapThumbnail is null)
|
||||
continue;
|
||||
fileHolder = new(extraLargeBitmapThumbnail);
|
||||
isValidImageFormatExtension = _Configuration.PropertyConfiguration.ValidImageFormatExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
isIgnoreExtension = isValidImageFormatExtension && _Configuration.IgnoreExtensions.Contains(fileHolder.ExtensionLowered);
|
||||
if (isIgnoreExtension || !isValidImageFormatExtension)
|
||||
continue;
|
||||
if (!int.TryParse(Path.GetFileName(fileHolder.DirectoryName)[..4], out int year))
|
||||
year = minimumDateTime.Value.Year;
|
||||
directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
|
||||
dateTime = Metadata.Models.Stateless.Methods.IMetadata.GetMinimumDateTime(dateTimes, year, directories);
|
||||
timeSpan = new TimeSpan(int.MaxValue);
|
||||
}
|
||||
if (fileHolder.DirectoryName is null)
|
||||
continue;
|
||||
(minimumDateTime, id, message) = IProperty.Get(fileHolder);
|
||||
if (id is null)
|
||||
continue;
|
||||
dateTime = IProperty.GetDateTimeFromName(fileHolder);
|
||||
if (dateTime is not null && minimumDateTime is not null && new TimeSpan(Math.Abs(minimumDateTime.Value.Ticks - dateTime.Value.Ticks)).TotalMinutes > 2)
|
||||
if (dateTime is not null && timeSpan.TotalMinutes > 2)
|
||||
{
|
||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{dateTime.Value:yyyy-MM-dd}.{dateTime.Value.Ticks}{checkFileExtension}");
|
||||
@ -252,42 +255,21 @@ public partial class Form : System.Windows.Forms.Form
|
||||
if (File.Exists(checkFile))
|
||||
continue;
|
||||
File.Move(fileHolder.FullName, checkFile);
|
||||
File.WriteAllText($"{checkFile}.id", $"{id.Value}{Environment.NewLine}{fileHolder.Name}");
|
||||
File.WriteAllText($"{checkFile}.id", $"{checkFile}{Environment.NewLine}{fileHolder.Name}");
|
||||
continue;
|
||||
}
|
||||
if (extraLargeBitmapThumbnail is not null)
|
||||
{
|
||||
File.Delete(fileHolder.FullName);
|
||||
fileHolder = new(file);
|
||||
if (fileHolder.DirectoryName is null)
|
||||
continue;
|
||||
}
|
||||
if (id is null)
|
||||
continue;
|
||||
checkFileExtension = fileHolder.ExtensionLowered == jpeg ? jpg : fileHolder.ExtensionLowered;
|
||||
checkFile = Path.Combine(fileHolder.DirectoryName, $"{id.Value}{checkFileExtension}");
|
||||
if (checkFile == fileHolder.FullName || File.Exists(checkFile))
|
||||
continue;
|
||||
File.Move(fileHolder.FullName, checkFile);
|
||||
File.WriteAllText($"{checkFile}.id", $"{id.Value}{Environment.NewLine}{fileHolder.Name}");
|
||||
File.WriteAllText($"{checkFile}.id", $"{checkFile}{Environment.NewLine}{fileHolder.Name}");
|
||||
}
|
||||
_InnerProgressBar.Visible = false;
|
||||
}
|
||||
|
||||
private string? SaveExtraLargeBitmapThumbnail(FileHolder fileHolder)
|
||||
{
|
||||
string? result;
|
||||
ShellFile shellFile = ShellFile.FromFilePath(fileHolder.FullName);
|
||||
if (shellFile is null || shellFile.Thumbnail is null || shellFile.Thumbnail.ExtraLargeBitmap.Clone() is not Bitmap bitmap || bitmap.Width == 0)
|
||||
result = null;
|
||||
else
|
||||
{
|
||||
result = $"{fileHolder.FullName}{_ResizeFileNameExtension}";
|
||||
bitmap.Save(result);
|
||||
bitmap.Dispose();
|
||||
shellFile.Dispose();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<(string, FaceDistance)> GetFileAndFaceDistanceCollection(string[] files)
|
||||
{
|
||||
// int? id;
|
||||
@ -308,7 +290,7 @@ public partial class Form : System.Windows.Forms.Form
|
||||
{
|
||||
_ProgressBar.PerformStep();
|
||||
directories = MetadataExtractor.ImageMetadataReader.ReadMetadata(file);
|
||||
json = Metadata.Models.Stateless.IMetadata.GetFaceEncoding(directories);
|
||||
json = Metadata.Models.Stateless.Methods.IMetadata.GetFaceEncoding(directories);
|
||||
if (json is null)
|
||||
break;
|
||||
modelsFaceEncoding = JsonSerializer.Deserialize<Shared.Models.FaceEncoding>(json);
|
||||
|
Reference in New Issue
Block a user