異なるサイズの画像を調和とパディングで組み合わせる方法

異なるサイズの画像を調和とパディングで組み合わせる方法

Aspose.Imaging for .NET は、調和とパッディングをコントロールし、あらゆるソース画像からポリシーされた、統一のコラグを作成することができます。

現実世界問題

合併のための画像は、カメラのアップロード、スキャン、または異なるデバイスから得られたなど、幅と高さが異なります。

ソリューション概要

プログラム的に最大サイズを計算し、パッディングを加え、それぞれの画像(上、中心、下、または左、中央、右)を組み合わせるために、無形でプロの外観。

原則

  • Visual Studio 2019 以降
  • .NET 6.0 またはそれ以降(または .Net Framework 4.6.2+)
  • Aspose.Imaging for .NET から NuGet
  • 合併する画像のフォルダー(混合サイズが許可)
PM> Install-Package Aspose.Imaging

ステップ・ステップ・実施

ステップ1:画像を整理し、合併/合成オプションを設定する

bool mergeHorizontal = true; // or false for vertical
string alignment = "center"; // options: "top", "center", "bottom" for horizontal; "left", "center", "right" for vertical
string[] files = Directory.GetFiles("./input", "*.jpg");

ステップ2:画像をアップロードし、出力サイズを計算する

var images = files.Select(f => Image.Load(f)).ToList();
int maxWidth = images.Max(img => img.Width);
int maxHeight = images.Max(img => img.Height);
int totalWidth = mergeHorizontal ? images.Sum(img => img.Width) : maxWidth;
int totalHeight = mergeHorizontal ? maxHeight : images.Sum(img => img.Height);
int padding = 20; // px between images

ステップ3: Alignment & Padding でカンバとドラッグを作成する

using (var outImg = Image.Create(new PngOptions(), totalWidth + (mergeHorizontal ? padding * (images.Count - 1) : 0), totalHeight + (mergeHorizontal ? 0 : padding * (images.Count - 1))))
{
    var graphics = new Aspose.Imaging.Graphics(outImg);
    graphics.Clear(Color.White); // Set background color
    int x = 0, y = 0;
    foreach (var img in images)
    {
        if (mergeHorizontal)
        {
            // Vertical alignment: top, center, bottom
            int drawY = alignment == "top" ? 0 : alignment == "bottom" ? maxHeight - img.Height : (maxHeight - img.Height) / 2;
            graphics.DrawImage(img, new Aspose.Imaging.Rectangle(x, drawY, img.Width, img.Height));
            x += img.Width + padding;
        }
        else
        {
            // Horizontal alignment: left, center, right
            int drawX = alignment == "left" ? 0 : alignment == "right" ? maxWidth - img.Width : (maxWidth - img.Width) / 2;
            graphics.DrawImage(img, new Aspose.Imaging.Rectangle(drawX, y, img.Width, img.Height));
            y += img.Height + padding;
        }
    }
    outImg.Save("./output/merged_aligned.png");
}
images.ForEach(img => img.Dispose());

ステップ4:テスト、予測、調整

  • 調整 alignment そして、 padding 最高の見た目。
  • スタイルや透明性のために必要に応じて背景の色を変更します。

ケースとアプリケーションの使用

  • スキャンドキュメントページコラーゲット
  • 混合カメラアップロードからポートフォリオレイアウト
  • 電子商取引比較ショット(さまざまな製品)
  • ソーシャルメディアコンパクト画像

共通の課題と解決策

チャレンジ1:大きなパッディングまたは欠陥

ソリューション: 折りたたみ、背景色、または合併前に入力画像をリサイクルします。

チャレンジ2:意図のないクロップまたはオーバーラップ

ソリューション: ダブルチェックカンバスサイズと配置数学。

チャレンジ3:調和は出力で間違っているように見える

ソリューション: さまざまな調整オプションを試してみて、コンテキストでプレビューします。

パフォーマンス考慮

  • 合併後に画像を配置して記憶の問題を避ける
  • 最良の品質と損失のない生産のためにPNGを使用する
  • 多くの画像では、まず小さなサンプルでプレビューしてください。

ベストプラクティス

  • イメージコンテンツに基づいて調整を決定する(例えば、中心面、調整製品ベース)
  • ドキュメントパラメーター自動化
  • プレビュー結果 フルロウト前
  • 明確で説明的なフィルネームを使用する

高度なシナリオ

シナリオ1:画像ごとにダイナミックパッディングまたは色を使用する

画像ごとにカスタマイズを許可します(ブランド色、セクションにより厚いスペース)。

シナリオ2:国境や広告を追加する

明るさとスタイルのためにライン、テキスト、または形状をカバーします。

FAQ

Q:フォーマットや色の深さを混ぜることができますか?A:はい、Aspose.Imagingはあなたの輸出タイプに生産を正常化します。

Q:透明パッディングを追加するにはどうすればよいですか?**A: PNG を使用して背景を設定する Color.Transparent.

Q:コンテンツに基づいて調整できますか?A: ダイナミックな調和を計算するために、オブジェクト/顔検出APIを使用します。

結論

完璧な調和とパッディングで、あらゆるサイズの画像を組み合わせることは、Aspose.Imaging for .NET でシンプルでプロフェッショナルであり、すべてのプロジェクトに美しく一貫した結果を提供します。

See Aspose.Imaging for .NET API リファレンス より先進的な調和、パディング、および合併のオプションのために。

 日本語