Les filtres intelligents sont utilisés pour permettre l’édition non destructive d’une image. Ils sont rééditables car ils conservent les paramètres de filtre et peuvent être ajustés ou supprimés de l’image si nécessaire. De plus, vous pouvez ajouter un ou plusieurs filtres intelligents à condition qu’un calque soit un objet intelligent. Cet article explique comment modifier et mettre à jour des filtres intelligents, ainsi qu’ajouter de nouveaux filtres tels que GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. à une image par programme en C#.
- Travailler avec des filtres intelligents et des objets intelligents dans le fichier PSD - Installation de l’API C#
- Ajouter, modifier et mettre à jour des filtres intelligents et des objets intelligents en C#
Travailler avec des filtres intelligents et des objets intelligents dans le fichier PSD - Installation de l’API C#
Vous devez installer l’API Aspose.PSD for .NET pour utiliser des images PSD par programmation dans C# .NET. Téléchargez rapidement son fichier DLL à partir de la section Téléchargements ou utilisez la commande d’installation NuGet dans l’IDE Visual Studio :
PM> Install-Package Aspose.PSD
Ajouter, modifier et mettre à jour des filtres intelligents et des objets intelligents en C#
Vous pouvez modifier, mettre à jour ou ajouter de nouveaux filtres intelligents aux objets intelligents dans un fichier PSD en suivant les étapes ci-dessous :
- Chargez l’image PSD d’entrée à l’aide de la classe Image.
- Chargez le calque d’objet intelligent à partir du fichier d’entrée.
- Modifiez le filtre intelligent et vérifiez ses propriétés telles que le rayon, le mode de fusion, l’opacité, etc.
- Mettez à jour les propriétés du filtre et ajoutez de nouveaux filtres intelligents comme le flou gaussien, l’ajout de bruit, etc.
- Enregistrez le fichier de sortie avec les filtres mis à jour et vérifiez les propriétés mises à jour.
L’extrait de code ci-dessous montre comment modifier, mettre à jour ou ajouter des filtres intelligents sur des objets intelligents dans une image PSD par programmation en C# :
var sourceFilter = "r2_SmartFilters.psd";
var outputPsd = "output.psd";
using (var image = (PsdImage)Image.Load(sourceFilter))
{
SmartObjectLayer smartObj = (SmartObjectLayer)image.Layers[1];
// modifier les filtres intelligents
GaussianBlurSmartFilter gaussianBlur = (GaussianBlurSmartFilter)smartObj.SmartFilters.Filters[0];
// vérifier les valeurs de filtre
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
// mettre à jour les valeurs de filtre
gaussianBlur.Radius = 1;
gaussianBlur.BlendMode = BlendMode.Divide;
gaussianBlur.Opacity = 75;
gaussianBlur.IsEnabled = false;
AddNoiseSmartFilter addNoise = (AddNoiseSmartFilter)smartObj.SmartFilters.Filters[1];
addNoise.Distribution = NoiseDistribution.Uniform;
// ajouter de nouveaux éléments de filtre
var filters = new List<SmartFilter>(smartObj.SmartFilters.Filters);
filters.Add(new GaussianBlurSmartFilter());
filters.Add(new AddNoiseSmartFilter());
smartObj.SmartFilters.Filters = filters.ToArray();
// appliquer les modifications
smartObj.SmartFilters.UpdateResourceValues();
// Appliquer des filtres
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];
// vérifier les valeurs de filtre
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
}
La capture d’écran ci-dessous montre l’exemple de sortie produit sur la console après l’exécution de l’extrait de code ci-dessus :
De plus, vous pouvez télécharger les fichiers d’entrée et de sortie depuis ce lien pour référence.
Explorer les fonctionnalités de l’API
Il existe de nombreuses autres classes et propriétés pour travailler avec le PSD et d’autres images. Vous pouvez visiter la section documentation pour plus d’informations.
Obtenez une licence d’évaluation gratuite
Vous pouvez évaluer l’API sans aucune limitation d’évaluation en demandant une licence temporaire gratuite.
Conclusion
Dans cet article, vous avez appris à utiliser des filtres intelligents sur des objets intelligents dans une image PSD par programmation en C#. Il explique comment modifier et mettre à jour les filtres intelligents existants dans une image, ainsi que l’ajout de nouveaux filtres intelligents tels que GaussianBlurSmartFilter, AddNoiseSmartFilter, etc. à une image. De plus, il convient de noter ici que vous n’avez pas besoin d’installer Photoshop ou toute autre application de traitement d’image pour travailler avec cette fonctionnalité car l’API ne dépend d’aucun autre outil. Si vous avez des questions ou des préoccupations, veuillez nous écrire sur le forum.