智能過濾器智能對象 PSD csharp

智能過濾器用於啟用圖像的非破壞性編輯。它們是可重新編輯的,因為它們保留了過濾器設置,並且可以根據需要進行調整或從圖像中刪除。此外,您可以添加一個或多個智能過濾器,前提是圖層是智能對象。本文介紹如何在 C# 中以編程方式編輯和更新智能濾鏡,以及如何將新濾鏡(如 GaussianBlurSmartFilter、AddNoiseSmartFilter 等)添加到圖像。

在 PSD 文件中使用智能過濾器和智能對象 – C# API 安裝

您需要安裝 Aspose.PSD for .NET API 才能在 C# .NET 中以編程方式處理 PSD 圖像。從下載部分快速下載其 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 等。此外,值得注意的是,您無需安裝任何 Photoshop 或任何其他圖像處理應用程序即可使用此功能,因為該 API 不依賴於任何其他工具。如果您有任何疑問或疑慮,請在 論壇 上寫信給我們。

也可以看看

在 C# 中以編程方式向圖像添加簽名