如何在 .NET 中垂直或横向合并多图像

如何在 .NET 中垂直或横向合并多图像

Aspose.Imaging for .NET 使图像易于垂直或水平地结合 - 在任何规模和任何格式。

现实世界问题

手动照片合并是缓慢和不一致的 - 特别是当处理图像文件夹或创建复合胶囊为网页 / 电子商务。

解决方案概述

使用 Aspose.Imaging for .NET,您可以编程上传、大小和绘制任何数量的图像到一个单一的水平或垂直管道。

原則

  • Visual Studio 2019 或以后
  • .NET 6.0 或更高版本(或 .Net Framework 4.6.2+)
  • Aspose.Imaging for .NET 来自 NuGet
  • 相结合的图像文件夹(JPG、PNG、BMP等)
PM> Install-Package Aspose.Imaging

步骤实施

步骤1:组织图像并选择合并方向

bool mergeHorizontal = true; // set false for vertical
string[] files = Directory.GetFiles("./input", "*.jpg");

步骤2:加载图像和计算输出大小

var images = files.Select(f => Image.Load(f)).ToList();
int totalWidth = mergeHorizontal ? images.Sum(img => img.Width) : images.Max(img => img.Width);
int totalHeight = mergeHorizontal ? images.Max(img => img.Height) : images.Sum(img => img.Height);

步骤3:创建输出图像并绘制每个来源

using (var outImg = Image.Create(new PngOptions(), totalWidth, totalHeight))
{
    var graphics = new Aspose.Imaging.Graphics(outImg);
    int x = 0, y = 0;
    foreach (var img in images)
    {
        graphics.DrawImage(img, new Aspose.Imaging.Rectangle(x, y, img.Width, img.Height));
        if (mergeHorizontal)
            x += img.Width;
        else
            y += img.Height;
    }
    outImg.Save("./output/merged.png");
}
images.ForEach(img => img.Dispose());

步骤4:验证输出和处理错误

  • 预测结果,检查错误调整或格式问题。
  • 使用后,始终将图像放入免费记忆中。

步骤5:处理混合尺寸或格式

  • 将逻辑添加到中心图像或以背景颜色填写,如果源图片的尺寸不同。

使用案例和应用程序

  • 电子商务产品或颜色比较
  • 图片 collages for marketing and social posts
  • 扫描和存档页面组合
  • 在 Web 应用程序中的前/后视图

共同挑战与解决方案

挑战1:图像是不同的尺寸

** 解決方案:** 與背景或調整(上/中心/底部)如需在繪畫前。

挑战2:输出图像太大

** 解決方案:** 限制圖像的數量或重新測量之前合併為網上準備的生產。

挑战3:记忆或调整错误

** 解决方案:** 提供所有加载的图像、双检查协调数学和预览输出。

绩效考虑

  • 使用 PNG 为无损合并, JPEG 为 Web 速度
  • 监控大组合的内存 - 配置所有图像对象
  • 在生产前使用代表性图像测试

最佳实践

  • 在合并之前以所需顺序安排图像
  • 上一篇: 调整/超越问题的预测结果
  • 使用可重复集合的命名协议
  • 管道重复使用的文件设置

先进的场景

剧本1:创建网格/摩萨格式

将水平和垂直逻辑结合为2D照片摩萨克。

剧本2:添加标签、边界或效果

使用图形添加文本或输出,以便在 collages 中的清晰度。

FAQ

**Q:我可以将不同的文件类型结合在一起吗?**答:是的,只需加载每个格式 - 输出可以是任何支持的类型。

**Q:如何将数百张图像的文件夹合并?**答:在结合之前将图像合并到较小的组合或重新编辑。

**Q:我可以自动化复杂 collages 的配置吗?**答:是的,编程计算任何模式或网络的位置。

结论

Aspose.Imaging for .NET 可快速可靠的图像合并,用于任何使用情况 - 水平、垂直或自定义布局 - 一切都完全自动化。

See Aspose.Imaging 为 .NET API 参考 先进的合并和合成的例子。

 中文