この記事では、C#.NETを使用して、レイヤーを検索し、PhotoshopのPSDファイル内のレイヤーのテキストまたは画像を動的に更新する方法を学習します。
PSDは、Adobe Photoshopがドキュメントを多層構造で保存するために使用するデフォルトの形式であり、各レイヤーにはテキスト、画像、グラフィックオブジェクト、およびその他のサポートされている要素が含まれます。 PSDテンプレートがあり、テンプレート内にテキストと画像のレイヤーを入力して、いくつかの結果の画像を作成する必要がある場合があります。このようなシナリオの例は、組織内で従業員カードを作成することです。このプロセスを自動化するために、次の方法を紹介します。
C#を使用してPSDファイルのテキストレイヤーを検索および更新 C#を使用してPSDファイル内の画像レイヤーを検索および更新 PSDレイヤーを検索および更新するためのC#ライブラリ Aspose.PSD for .NETを使用すると、AdobePhotoshopやIllustratorをインストールせずにPSDファイルを作成および変更できます。 APIは、C#またはVB.NETを使用してPSDレイヤーを動的に更新する必要があるシナリオで便利です。 NuGet Package Managerを使用してAPIをインストールするか、DLLを手動でダウンロードして参照できます。
C#を使用してPSDファイルのテキストレイヤーを検索および更新する Aspose.PSD for .NETを使用すると、レイヤーの名前を使用して、PSDファイルで目的のレイヤーを見つけることができます。レイヤーを見つけたら、そのコンテンツを更新できます。以下は、PSDファイル内のテキストレイヤーを検索して更新する手順です。
PsdImageクラスのインスタンスを作成し、PSDファイルのパスで初期化します。 PsdImage.Layersプロパティを使用して、PSDのレイヤーにアクセスします。 各レイヤーの表示名を一致させて、目的のレイヤーをTextLayerオブジェクトに入れます。 TextLayer.UpdateText(String)メソッドを使用してテキストを更新します。 PsdImage.Save(String)メソッドを使用して、更新された画像を保存します。 次のコードサンプルは、C#を使用してPSDファイルのテキストレイヤーを検索して更新する方法を示しています。
// PSDファイルをロード using (PsdImage image = (PsdImage)Image.Load(@"template.psd")) { // レイヤーの名前を使用してレイヤーを検索 var layerToUpdateText = (TextLayer)FindLayer("Name", image); // テキストを更新する簡単な方法 layerToUpdateText.UpdateText("John Doe"); // 更新されたPSDファイルを保存します image.Save("updated-psd.psd"); } //------------------- FindLayer()------------- public static Layer FindLayer(string layerName, PsdImage image) { // PSDファイルでaaレイヤーを取得します var layers = image.Layers; // 目的のレイヤーを見つける foreach (var layer in layers) { // レイヤーの名前と一致する if (string.