スマートフィルターは、画像の非破壊編集を可能にするために使用されます。フィルタ設定を保持し、必要に応じて画像から調整または削除できるため、再編集可能です。さらに、レイヤーがスマートオブジェクトである場合は、1つ以上のスマートフィルターを追加できます。この記事では、スマートフィルターを編集および更新する方法と、GaussianBlurSmartFilter、AddNoiseSmartFilterなどの新しいフィルターをC#でプログラムによって画像に追加する方法について説明します。
PSDファイルでのスマートフィルターとスマートオブジェクトの操作– C#APIのインストール
C#.NETでプログラムでPSD画像を操作するには、Aspose.PSD for .NETAPIをインストールする必要があります。 [ダウンロード]セクションからDLLファイルをすばやくダウンロードするか、Visual Studio IDEでNuGetインストールコマンドを使用します。
PM> Install-Package Aspose.PSD
C#でのスマートフィルターとスマートオブジェクトの追加、編集、更新
以下の手順に従って、PSDファイル内のスマートオブジェクトを編集、更新、または新しいスマートフィルターに追加できます。
- Imageクラスを使用して入力PSD画像をロードします。
- 入力ファイルからスマートオブジェクトレイヤーをロードします。
- スマートフィルターを編集し、半径、ブレンドモード、不透明度などのプロパティを確認します。
- フィルタのプロパティを更新し、ガウスぼかし、ノイズの追加などの新しいスマートフィルタを追加します。
- 更新されたフィルターを使用して出力ファイルを保存し、更新されたプロパティを確認します。
以下のコードスニペットは、C#でプログラムによってPSD画像のスマートオブジェクトにスマートフィルターを編集、更新、または追加する方法を示しています。
var sourceFilter = "r2_SmartFilters.psd";
var outputPsd = "output.psd";
using (var image = (PsdImage)Image.Load(sourceFilter))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
// スマートフィルターを編集する
GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// フィルタ値を確認してください
Console.WriteLine("Radius: " + gaussianBlur.Radius); // 3.1
Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Dissolve
Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 90d
Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // true
// フィルタ値を更新する
gaussianBlur.Radius = 1;
gaussianBlur.BlendMode = BlendMode.Divide;
gaussianBlur.Opacity = 75;
gaussianBlur.IsEnabled = false;
AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
addNoise.Distribution = NoiseDistribution.Uniform;
// 新しいフィルターアイテムを追加する
var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
filters.Add(new GaussianBlurSmartFilter());
filters.Add(new AddNoiseSmartFilter());
smartObj.SmartFilters.Filters = filters.ToArray();
// 変更を適用する
smartObj.SmartFilters.UpdateResourceValues();
// フィルタを適用する
smartObj.SmartFilters.Filters[0].Apply(image.Layers[2]);
smartObj.SmartFilters.Filters[4].ApplyToMask(image.Layers[2]);
image.Save(outputPsd);
}
using (var image = (PsdImage)Image.Load(outputPsd))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
GaussianBlurSmartFilter gaussianBlur = (Aspose.PSD.FileFormats.Psd.Layers.SmartFilters.GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// フィルタ値を確認してください
Console.WriteLine("\n\n");
Console.WriteLine("Radius: " + gaussianBlur.Radius); // 1d
Console.WriteLine("Blend Mode: " + gaussianBlur.BlendMode); // BlendMode.Divide
Console.WriteLine("Opacity: " + gaussianBlur.Opacity); // 75d
Console.WriteLine("GuassianBlurEnabled: " + gaussianBlur.IsEnabled); // false
Console.WriteLine(smartObj.SmartFilters.Filters[5] is GaussianBlurSmartFilter); // true
Console.WriteLine(smartObj.SmartFilters.Filters[6] is AddNoiseSmartFilter); // true
}
以下のスクリーンショットは、上記のコードスニペットを実行した後にコンソールで生成されたサンプル出力を示しています。
また、このリンクから入力ファイルと出力ファイルをダウンロードして参照することもできます。
API機能を調べる
PSDやその他の画像を操作するためのクラスやプロパティは他にもたくさんあります。詳細については、ドキュメントセクションにアクセスしてください。
無料の評価ライセンスを取得する
無料の一時ライセンスをリクエストすることで、評価の制限なしにAPIを評価できます。
結論
この記事では、C#でプログラムによってPSD画像のスマートオブジェクトでスマートフィルターを操作する方法を学習しました。画像内の既存のスマートフィルターを編集および更新する方法と、GaussianBlurSmartFilter、AddNoiseSmartFilterなどの新しいスマートフィルターを画像に追加する方法について説明します。さらに、APIは他のツールに依存していないため、この機能を使用するためにPhotoshopやその他の画像処理アプリケーションをインストールする必要がないことに注意してください。ご不明な点やご不明な点がございましたら、フォーラムまでお問い合わせください。