Filtros Inteligentes Objetos Inteligentes PSD csharp

Filtros inteligentes são usados para permitir a edição não destrutiva de uma imagem. Eles são reeditáveis, pois mantêm as configurações de filtro e podem ser ajustados ou removidos da imagem, se necessário. Além disso, você pode adicionar um ou mais filtros inteligentes desde que uma camada seja um objeto inteligente. Este artigo aborda como editar e atualizar filtros inteligentes, bem como adicionar novos filtros como GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. a uma imagem programaticamente em C#.

Trabalhar com Filtros Inteligentes e Objetos Inteligentes em Arquivo PSD – Instalação da API C#

Você precisa instalar a API Aspose.PSD for .NET para trabalhar com imagens PSD programaticamente em C# .NET. Baixe rapidamente seu arquivo DLL da seção Downloads ou use o comando de instalação NuGet no Visual Studio IDE:

PM> Install-Package Aspose.PSD

Adicionar, editar e atualizar filtros inteligentes e objetos inteligentes em C#

Você pode editar, atualizar ou adicionar novos filtros inteligentes aos objetos inteligentes em um arquivo PSD seguindo as etapas abaixo:

  • Carregue a imagem PSD de entrada usando a classe Image.
  • Carregue a camada de objeto inteligente do arquivo de entrada.
  • Edite o filtro inteligente e verifique suas propriedades como raio, modo de mesclagem, opacidade, etc.
  • Atualize as propriedades do filtro e adicione novos filtros inteligentes, como desfoque gaussiano, Adicionar ruído, etc.
  • Salve o arquivo de saída com filtros atualizados e verifique as propriedades atualizadas.

O trecho de código abaixo mostra como editar, atualizar ou adicionar filtros inteligentes em objetos inteligentes em uma imagem PSD programaticamente em C#:

            var sourceFilter = "r2_SmartFilters.psd";
            var outputPsd = "output.psd";

            using (var image = (PsdImage)Image.Load(sourceFilter))
            {
                SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];

                // editar filtros inteligentes
                GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];

                // verifique os valores do filtro
                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

                // atualizar valores de filtro
                gaussianBlur.Radius = 1;
                gaussianBlur.BlendMode = BlendMode.Divide;
                gaussianBlur.Opacity = 75;
                gaussianBlur.IsEnabled = false;
                AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
                addNoise.Distribution = NoiseDistribution.Uniform;

                // adicionar novos itens de filtro
                var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
                filters.Add(new GaussianBlurSmartFilter());
                filters.Add(new AddNoiseSmartFilter());
                smartObj.SmartFilters.Filters = filters.ToArray();

                // Aplicar mudanças
                smartObj.SmartFilters.UpdateResourceValues();

                // Aplicar filtros
                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];

                // verifique os valores do filtro
                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
            }

A captura de tela abaixo mostra a saída de amostra produzida no console após a execução do snippet de código acima:

Além disso, você pode baixar os arquivos de entrada e saída de este link para referência.

Explorar os recursos da API

Existem muitas outras classes e propriedades para trabalhar com o PSD e outras imagens. Você pode visitar a seção documentação para mais informações.

Obtenha uma licença de avaliação gratuita

Você pode avaliar a API sem limitações de avaliação solicitando uma licença temporária gratuita.

Conclusão

Neste artigo, você aprendeu como trabalhar com Filtros Inteligentes em Objetos Inteligentes em uma imagem PSD programaticamente em C#. Ele discute como editar e atualizar filtros inteligentes existentes em uma imagem, bem como adicionar novos filtros inteligentes como GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. a uma imagem. Além disso, vale ressaltar aqui que você não precisa instalar nenhum Photoshop, ou qualquer outro aplicativo de processamento de imagem para trabalhar com esse recurso, pois a API não depende de nenhuma outra ferramenta. Caso você tenha alguma dúvida ou preocupação, escreva para nós no fórum.

Veja também

Adicionar assinatura a uma imagem programaticamente em C#