如何在 .NET 中自动创建多个文件夹的照片专辑

如何在 .NET 中自动创建多个文件夹的照片专辑

Aspose.Imaging for .NET 使每套图像都能轻松地创建多页 TIFF 专辑,适合定期活动、项目或存档需求。

现实世界问题

手动创建每个项目、活动或图像组合的专辑是无聊和错误的,特别是当容量高或新文件夹定期到达时。

解决方案概述

通过每个子文件夹进行旋转来自动化这个过程,并为每个组合创建一个单独的多页 TIFF 专辑,所有在一个脚本中。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.Imaging for .NET 来自 NuGet
  • 根目录与图像集的分子
PM> Install-Package Aspose.Imaging

步骤实施

步骤1:设置文件夹和输出结构

安排你的图像:每张专辑都会在根目录下获得自己的子文件夹。

string rootDir = "./albums";
string outputDir = "./output_albums";
Directory.CreateDirectory(outputDir);
var albumFolders = Directory.GetDirectories(rootDir);

步骤2:走过文件夹并创建每个专辑

using Aspose.Imaging;
using Aspose.Imaging.ImageOptions;
using Aspose.Imaging.FileFormats.Tiff.Enums;

foreach (var folder in albumFolders)
{
    string[] files = Directory.GetFiles(folder, "*.jpg"); // Or *.png, *.bmp, etc.
    if (files.Length == 0) continue; // Skip empty folders

    var images = files.Select(f => Image.Load(f)).ToList();
    var tiffOptions = new TiffOptions(TiffExpectedFormat.Default)
    {
        Compression = TiffCompressions.Lzw
    };
    string albumName = Path.GetFileName(folder);
    string albumPath = Path.Combine(outputDir, albumName + ".tiff");

    using (var album = Image.Create(tiffOptions, images[0].Width, images[0].Height, false))
    {
        var graphics = new Aspose.Imaging.Graphics(album);
        graphics.DrawImage(images[0], 0, 0, images[0].Width, images[0].Height);

        for (int i = 1; i < images.Count; i++)
        {
            album.AddPage(images[i]);
        }
        album.Save(albumPath);
    }
    images.ForEach(img => img.Dispose());
}

步骤3:记录进展和错误

跟踪哪些专辑创建并记录由于失踪或腐败的图像而丢失的文件夹。

使用案例和应用程序

  • 活动摄影师为每个活动发行专辑
  • 每周/每月项目文档和档案
  • 不同部门的自动遵守/照片报告

共同挑战与解决方案

** 某些文件是空的:** 将这些文件在代码中删除。

** 长图像设置缓慢处理:** 在添加之前通过重复或压缩图片来优化。

因腐败的文件造成的错误: 登录并继续下一张专辑可靠性。

最佳实践

  • 使用清晰的名称文件夹和输出专辑
  • 添加新照片后运行脚本的时间表
  • 回收原件在包装处理前

FAQ

**Q:我可以用此用于DICOM专辑或特殊格式吗?**答:是的,按需要用DicomOptions取代TiffOption。

**Q:如何自定义专辑大小或配置?**答:在添加之前提前处理图像,或者再重复逻辑来标准化。

**Q:我可以在包装完成时自动通知吗?**A: 添加电子邮件或登录集成到您的工作流。

结论

使用 Aspose.Imaging for .NET,从多个文件夹中创建专辑是完全自动化、可靠和可扩展的。 适合高容量事件、遵守或定期存档。 Aspose.Imaging 为 .NET API 参考 .

 中文