異なるサイズの画像を調和とパディングで組み合わせる方法
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 リファレンス より先進的な調和、パディング、および合併のオプションのために。