mirror of
https://github.com/azaion/annotations.git
synced 2026-04-23 01:56:31 +00:00
fix editing annotation
This commit is contained in:
@@ -14,16 +14,27 @@ public class GalleryManager(Config config, ILogger<GalleryManager> logger) : IGa
|
||||
public int ThumbnailsCount { get; set; }
|
||||
public int ImagesCount { get; set; }
|
||||
|
||||
private DirectoryInfo? _thumbnailsDirectory;
|
||||
private DirectoryInfo ThumbnailsDirectory
|
||||
{
|
||||
get
|
||||
{
|
||||
if (_thumbnailsDirectory != null)
|
||||
return _thumbnailsDirectory;
|
||||
|
||||
var dir = new DirectoryInfo(config.ThumbnailsDirectory);
|
||||
if (!dir.Exists)
|
||||
Directory.CreateDirectory(config.ThumbnailsDirectory);
|
||||
_thumbnailsDirectory = new DirectoryInfo(config.ThumbnailsDirectory);
|
||||
return _thumbnailsDirectory;
|
||||
}
|
||||
}
|
||||
|
||||
public async Task RefreshThumbnails()
|
||||
{
|
||||
var dir = new DirectoryInfo(config.ThumbnailsDirectory);
|
||||
if (!dir.Exists)
|
||||
Directory.CreateDirectory(config.ThumbnailsDirectory);
|
||||
|
||||
var prefixLen = Config.ThumbnailPrefix.Length;
|
||||
var thumbnailsDir = new DirectoryInfo(config.ThumbnailsDirectory);
|
||||
|
||||
var thumbnails = thumbnailsDir.GetFiles()
|
||||
var thumbnails = ThumbnailsDirectory.GetFiles()
|
||||
.Select(x => Path.GetFileNameWithoutExtension(x.Name)[..^prefixLen])
|
||||
.GroupBy(x => x)
|
||||
.Select(gr => gr.Key)
|
||||
@@ -38,15 +49,9 @@ public class GalleryManager(Config config, ILogger<GalleryManager> logger) : IGa
|
||||
var imgName = Path.GetFileNameWithoutExtension(img.Name);
|
||||
if (thumbnails.Contains(imgName))
|
||||
continue;
|
||||
|
||||
try
|
||||
{
|
||||
var bitmap = await GenerateThumbnail(img);
|
||||
if (bitmap != null)
|
||||
{
|
||||
var thumbnailName = Path.Combine(thumbnailsDir.FullName, $"{imgName}{Config.ThumbnailPrefix}.jpg");
|
||||
bitmap.Save(thumbnailName, ImageFormat.Jpeg);
|
||||
}
|
||||
await CreateThumbnail(img.FullName);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
@@ -57,15 +62,25 @@ public class GalleryManager(Config config, ILogger<GalleryManager> logger) : IGa
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<Bitmap?> GenerateThumbnail(FileInfo img)
|
||||
public async Task CreateThumbnail(string imgPath)
|
||||
{
|
||||
var bitmap = await GenerateThumbnail(imgPath);
|
||||
if (bitmap != null)
|
||||
{
|
||||
var thumbnailName = Path.Combine(ThumbnailsDirectory.FullName, $"{Path.GetFileNameWithoutExtension(imgPath)}{Config.ThumbnailPrefix}.jpg");
|
||||
bitmap.Save(thumbnailName, ImageFormat.Jpeg);
|
||||
}
|
||||
}
|
||||
|
||||
private async Task<Bitmap?> GenerateThumbnail(string imgPath)
|
||||
{
|
||||
var width = (int)config.ThumbnailConfig.Size.Width;
|
||||
var height = (int)config.ThumbnailConfig.Size.Height;
|
||||
|
||||
var imgName = Path.GetFileNameWithoutExtension(img.Name);
|
||||
var labelName = Path.Combine(config.LabelsDirectory, $"{imgName}.txt");
|
||||
var imgName = Path.GetFileName(imgPath);
|
||||
var labelName = Path.Combine(config.LabelsDirectory, $"{Path.GetFileNameWithoutExtension(imgPath)}.txt");
|
||||
|
||||
var originalImage = Image.FromStream(new MemoryStream(await File.ReadAllBytesAsync(img.FullName)));
|
||||
var originalImage = Image.FromStream(new MemoryStream(await File.ReadAllBytesAsync(imgPath)));
|
||||
|
||||
var bitmap = new Bitmap(width, height);
|
||||
|
||||
@@ -77,8 +92,8 @@ public class GalleryManager(Config config, ILogger<GalleryManager> logger) : IGa
|
||||
var size = new Size(originalImage.Width, originalImage.Height);
|
||||
if (!File.Exists(labelName))
|
||||
{
|
||||
File.Move(img.FullName, Path.Combine(config.UnknownImages, Path.GetFileName(img.Name)));
|
||||
logger.LogInformation($"No labels found for image {img.Name}! Moved image to the {config.UnknownImages} folder.");
|
||||
File.Move(imgPath, Path.Combine(config.UnknownImages, imgName));
|
||||
logger.LogInformation($"No labels found for image {imgName}! Moved image to the {config.UnknownImages} folder.");
|
||||
return null;
|
||||
}
|
||||
var labels = (await YoloLabel.ReadFromFile(labelName))
|
||||
@@ -139,5 +154,6 @@ public interface IGalleryManager
|
||||
{
|
||||
int ThumbnailsCount { get; set; }
|
||||
int ImagesCount { get; set; }
|
||||
Task CreateThumbnail(string imgPath);
|
||||
Task RefreshThumbnails();
|
||||
}
|
||||
Reference in New Issue
Block a user