.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:画像を整理し、グリッドサイズを設定する
int columns = 4, rows = 3; // Change as needed
string[] files = Directory.GetFiles("./input", "*.jpg");
ステップ2:すべての画像をアップロードおよびオプションでリサイクル
var images = files.Take(columns * rows).Select(f => Image.Load(f)).ToList();
int thumbWidth = 200, thumbHeight = 200;
foreach (var img in images) img.Resize(thumbWidth, thumbHeight, ResizeType.LanczosResample);
ステップ3:カンバスのサイズを計算し、モザイクを作成します。
int totalWidth = columns * thumbWidth;
int totalHeight = rows * thumbHeight;
using (var outImg = Image.Create(new PngOptions(), totalWidth, totalHeight))
{
var graphics = new Aspose.Imaging.Graphics(outImg);
for (int row = 0; row < rows; row++)
{
for (int col = 0; col < columns; col++)
{
int idx = row * columns + col;
if (idx >= images.Count) break;
graphics.DrawImage(images[idx], new Aspose.Imaging.Rectangle(col * thumbWidth, row * thumbHeight, thumbWidth, thumbHeight));
}
}
outImg.Save("./output/mosaic.png");
}
images.ForEach(img => img.Dispose());
ステップ4:部分線や列を処理する
- 画像が < 行 × 列を数える場合は、最後の細胞を空っぽにしたり、必要に応じて色で満たしたりします。
ステップ5:プレビューとツイック出力
- 調和、格差、または上層を確認し、望ましいように小さなサイズまたはネットワークを調整します。
ケースとアプリケーションの使用
- ソーシャルメディアまたはギャラリー写真の壁
- マーケティングと電子商取引コラッグ
- アートポートフォリオと証明書
- イベント・旅行写真モザイク
共通の課題と解決策
課題1 : 異なるサイズの画像
ソリューション: ネットワークに追加する前に常にユニフォームトンネルに再生/収穫します。
チャレンジ2:あまりにも少ない画像
ソリューション: 色が満たされていない場合、または複数のモザイクで処理する場合の色のパッドネットワーク。
チャレンジ3:グリッド・ガップまたはオーバーラップ
ソリューション: 次元を慎重に計算し、常に出力を予測します。
パフォーマンス考慮
- 無損ネットワーク用のPNG、Web用のJPEG
- 大型モザイクでは、RAMをモニターし、絵を描いた後に画像を配置します。
- 完全自動化前に予測サンプル
ベストプラクティス
- 安定したレイアウトのためのスタンダードサイズ
- 繰り返し作業のためのドキュメントネットワーク設定
- 明確な名称(たとえば、
gallery_mosaic_4x3.png
) - ライブ使用前にターゲットアプリ/サイトのプレビュー
高度なシナリオ
シナリオ1:画像の間に境界線またはラベルを追加する
グラフィックを使用してラインを描くか、明確性のためにテキストを表す。
シナリオ2:Webのための反応的なネットワークを生成する
さまざまなデバイスのブレイクポイントのための複数のネットワークサイズを自動化します。
FAQ
Q:非四角形またはダイナミックネットワークを作成できますか?**A: はい、あなたのニーズや画像数に基づいて行/列/サイズを調整します。
Q:画像の間にパッディングや境界線を追加するにはどうすればよいですか?**A:カンバのサイズを増やし、必要に応じてライン/直角を描く。
Q:ファイルフォーマットを混ぜることができますか?A: はい、サポートされているフォーマットを充電します - 出力のために PNG/JPEG として輸出します。
結論
Aspose.Imaging for .NET に組み合わせたネットワークとモザイクは、新しいギャラリー、マーケティング、アーカイブの強力なレイアウトを開く - 完全に自動化され、スケール可能であり、ピクセルが完璧です。
See Aspose.Imaging for .NET API リファレンス より多くのネットワーク、コラージュ、複合例のために。