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#
- Adicionar, editar e atualizar filtros inteligentes e objetos inteligentes 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.