Hawkynt.PhotoManager.Core
1.0.0.22
dotnet add package Hawkynt.PhotoManager.Core --version 1.0.0.22
NuGet\Install-Package Hawkynt.PhotoManager.Core -Version 1.0.0.22
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Hawkynt.PhotoManager.Core" Version="1.0.0.22" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Hawkynt.PhotoManager.Core" Version="1.0.0.22" />
<PackageReference Include="Hawkynt.PhotoManager.Core" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Hawkynt.PhotoManager.Core --version 1.0.0.22
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Hawkynt.PhotoManager.Core, 1.0.0.22"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Hawkynt.PhotoManager.Core@1.0.0.22
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Hawkynt.PhotoManager.Core&version=1.0.0.22
#tool nuget:?package=Hawkynt.PhotoManager.Core&version=1.0.0.22
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
PhotoManager.Core
Core library for photo organization and management with metadata-driven sorting, duplicate handling, and flexible import strategies.
Overview
This library provides the core functionality for photo organization, including:
- 🔍 Metadata extraction from image files (EXIF, GPS, filesystem)
- 🎯 Smart date detection from multiple sources with reliability scoring
- 📁 File organization with configurable folder structure patterns
- 🔄 Duplicate handling with multiple resolution strategies (Smart/Rename/Skip/Overwrite)
- 📊 Progress reporting and detailed operation results
Installation
dotnet add package PhotoManager.Core
Key Components
Models
FileToImport- Represents a file to be processed with metadata extraction capabilitiesImportSettings- Configuration for import operationsImportResult- Results and statistics from import operations
Services
ImportManager- Main orchestration service for file importsDateTimeParser- Parses dates from filenames using various patternsFileOrganizer- Handles file movement and path generation
Interfaces
IImportManager- Contract for import operationsIDateTimeParser- Contract for date parsingIFileOrganizer- Contract for file organization
Enums
DateTimeSource- Identifies the source of extracted dates
Dependencies
- MetadataExtractor (2.8.1) - For reading EXIF and other metadata
Usage Example
using PhotoManager.Core.Services;
using PhotoManager.Core.Models;
var importManager = new ImportManager();
var settings = new ImportSettings {
SourceDirectory = new DirectoryInfo(@"C:\Photos\Input"),
DestinationDirectory = new DirectoryInfo(@"C:\Photos\Organized"),
Recursive = true,
DryRun = false
};
var progress = new Progress<ImportProgress>(p => {
Console.WriteLine($"Processing: {p.CurrentFileName} ({p.PercentComplete:F1}%)");
});
var result = await importManager.ProcessDirectoryAsync(settings, progress);
Console.WriteLine($"Processed {result.SuccessfullyProcessed} of {result.TotalFiles} files");
Date Detection Algorithm
The library uses a sophisticated algorithm to determine the most probable creation date:
- Extracts dates from multiple sources
- Filters out invalid/default dates
- Applies reliability scoring
- Returns the most reliable date
Reliability Scores
- GPS: 50
- EXIF SubIFD: 40
- EXIF IFD0: 30
- Filename: 20
- File Modified: 10
- File Created: 1
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net8.0
- FileFormat.JpegArchive (>= 1.0.0)
- Hawkynt.FileFormats.Images (>= 1.0.0)
- Magick.NET-Q8-AnyCPU (>= 14.4.0)
- MetadataExtractor (>= 2.8.1)
- Microsoft.ML.OnnxRuntime (>= 1.20.1)
- OpenCvSharp4 (>= 4.10.0.20241108)
- OpenCvSharp4.runtime.linux-x64 (>= 4.10.0.20240717)
- SixLabors.ImageSharp (>= 3.1.11)
- SixLabors.ImageSharp.Drawing (>= 2.1.6)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0.22 | 80 | 6/5/2026 |