Ajouter un calque de remplissage dans Photoshop

Les photos sont un moyen très utile de refléter l’information. Les fichiers au format PSD sont utilisés pour créer des images. Cependant, il peut y avoir des scénarios tels que l’édition de plusieurs fichiers Photoshop dans le même sens. Par exemple, une application de traitement de photos peut avoir besoin d’ajouter un calque dans plusieurs documents Photoshop, ainsi que d’autres opérations. L’API Aspose.PSD for .NET offre de nombreuses fonctionnalités pour travailler avec PSD, PSB, AI et de nombreux autres formats de fichiers. Explorons les cas d’utilisation suivants liés à l’ajout d’une couche dans les fichiers PSD :

Ajouter un calque de remplissage au moment de l’exécution dans le document Photoshop à l’aide de C#

Aspose.PSD for l’API .NET prend en charge la création d’un calque de remplissage dans un fichier PSD. Vous n’avez pas nécessairement besoin de charger la couche à partir d’un fichier existant. Suivez simplement les étapes ci-dessous pour ajouter un calque de remplissage au moment de l’exécution dans le fichier PSD :

  1. Initialiser une instance de la classe PsdImage avec les dimensions de la page
  2. Créer une instance de la classe FillLayer
  3. Définir le nom d’affichage du calque
  4. Ajouter le calque à l’image

L’extrait de code suivant montre comment ajouter un calque de remplissage dans Photoshop à l’aide de C# :

string outputFilePath = Path.Combine(dataDir, "output.psd");

using (var image = new PsdImage(100, 100))
{
    FillLayer colorFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Color);
    colorFillLayer.DisplayName = "Color Fill Layer";
    image.AddLayer(colorFillLayer);

    FillLayer gradientFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Gradient);
    gradientFillLayer.DisplayName = "Gradient Fill Layer";
    image.AddLayer(gradientFillLayer);

    FillLayer patternFillLayer = FillLayer.CreateInstance(Aspose.PSD.FileFormats.Psd.Layers.FillSettings.FillType.Pattern);
    patternFillLayer.DisplayName = "Pattern Fill Layer";
    patternFillLayer.Opacity = 50;
    image.AddLayer(patternFillLayer);

    image.Save(outputFilePath);
}

Cet extrait de code générera un fichier PSD de dimensions spécifiées où la capture d’écran ci-dessous montre les noms de trois couches de remplissage exactement comme défini par le code C# ci-dessus :

Ajouter un calque dans Photoshop

Ajouter un calque de remplissage existant dans le fichier PSD à l’aide de C#

Nous avons déjà appris à créer et à ajouter de nouveaux calques de remplissage. Voyons comment ajouter un calque à partir d’un fichier Photoshop existant. Voici les possibilités d’ajouter des calques de remplissage existants :

i) Ajouter un calque de remplissage avec remplissage de motif à l’aide de C#

Un motif de remplissage peut avoir une image, une ligne ou une ombre pour remplir la zone. Vous devez suivre les étapes ci-dessous pour ajouter un calque avec Patten Fill dans une image PSD :

  1. Charger le fichier PSD source
  2. Parcourez tous les calques et recherchez FillLayer
  3. Définir différents paramètres pour le calque
  4. Modifier le calque de remplissage
  5. Enregistrer l’image

L’extrait de code ci-dessous montre comment ajouter un calque de remplissage avec un remplissage de motif à l’aide de C# :

// Ajout de la prise en charge des calques de remplissage : motif
string sourceFileName = dataDir + "PatternFillLayer.psd";
string exportPath = dataDir + "PatternFillLayer_Edited.psd";
double tolerance = 0.0001;
var im = (PsdImage)Image.Load(sourceFileName);
using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            FillLayer fillLayer = (FillLayer)layer;
            PatternFillSettings fillSettings = (PatternFillSettings)fillLayer.FillSettings;
            if (fillSettings.HorizontalOffset != -46 ||
                fillSettings.VerticalOffset != -45 ||
                fillSettings.PatternId != "a6818df2-7532-494e-9615-8fdd6b7f38e5" ||
                fillSettings.PatternName != "$$$/Presets/Patterns/OpticalSquares=Optical Squares" ||
                fillSettings.AlignWithLayer != true ||
                fillSettings.Linked != true ||
                fillSettings.PatternHeight != 64 ||
                fillSettings.PatternWidth != 64 ||
                fillSettings.PatternData.Length != 4096 ||
                Math.Abs(fillSettings.Scale - 50) > tolerance)
            {
                throw new Exception("PSD Image was read wrong");
            }
            // Édition 
            fillSettings.Scale = 300;
            fillSettings.HorizontalOffset = 2;
            fillSettings.VerticalOffset = -20;
            fillSettings.PatternData = new int[]
            {
           Color.Red.ToArgb(), Color.Blue.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Red.ToArgb(),  Color.Blue.ToArgb(),
           Color.Blue.ToArgb(), Color.Blue.ToArgb(),  Color.Red.ToArgb()
            };
            fillSettings.PatternHeight = 3;
            fillSettings.PatternWidth = 3;
            fillSettings.AlignWithLayer = false;
            fillSettings.Linked = false;
            fillSettings.PatternId = Guid.NewGuid().ToString();
            fillLayer.Update();
            break;
        }
    }
    im.Save(exportPath);
}

ii) Ajouter un calque de remplissage avec un remplissage dégradé à l’aide de C#

Vous pouvez également utiliser le remplissage dégradé pour remplir un calque dans Photoshop Document. L’API Aspose.PSD for .NET prend en charge les types de remplissages dégradés suivants :

  • Linéaire
  • diamant
  • Radial
  • Réfléchi
  • Angle

Voici les étapes pour ajouter un calque avec un remplissage dégradé :

L’extrait de code ci-dessous est basé sur ces étapes et montre comment ajouter un calque GradientFill dans un document Photoshop à l’aide de C# :

string fileName = dataDir + "FillLayerGradient.psd";
GradientType[] gradientTypes = new[]
{
    GradientType.Linear, GradientType.Radial, GradientType.Angle, GradientType.Reflected, GradientType.Diamond
};
using (var image = Image.Load(fileName))
{
    PsdImage psdImage = (PsdImage)image;
    FillLayer fillLayer = (FillLayer)psdImage.Layers[0];
    GradientFillSettings fillSettings = (GradientFillSettings)fillLayer.FillSettings;
    foreach (var gradientType in gradientTypes)
    {
        fillSettings.GradientType = gradientType;
        fillLayer.Update();
        psdImage.Save(fileName + "_" + gradientType.ToString() + ".png", new PngOptions() { ColorType = PngColorType.TruecolorWithAlpha });
    }
}

Cet extrait de code générera cinq fichiers différents, chacun avec un type différent de remplissage dégradé dans la couche du fichier PSD.

iii) Ajouter un calque de remplissage avec un remplissage de couleur à l’aide de C#

Vous pouvez ajouter un calque avec un remplissage de couleur dans Photoshop Document, un fichier PSD. Suivez les étapes ci-dessous pour ajouter ou créer un calque de remplissage avec remplissage de couleur :

  1. Charger l’image PSD source
  2. Vérifiez tous les calques et trouvez FillLayer
  3. Lire les paramètres de remplissage du calque
  4. Définir la couleur de remplissage et mettre à jour le calque
  5. Enregistrer l’image PSD

L’extrait de code ci-dessous est basé sur les étapes susmentionnées qui montrent comment ajouter un calque de remplissage dans Photoshop Document à l’aide de C# :

// Pour des exemples complets et des fichiers de données, rendez-vous sur https://github.com/aspose-psd/Aspose.PSD-for-.NET

string sourceFileName = dataDir + "ColorFillLayer.psd";
string exportPath = dataDir + "ColorFillLayer_output.psd";

var im = (PsdImage)Image.Load(sourceFileName);

using (im)
{
    foreach (var layer in im.Layers)
    {
        if (layer is FillLayer)
        {
            var fillLayer = (FillLayer)layer;

            if (fillLayer.FillSettings.FillType != FillType.Color)
            {
                throw new Exception("Wrong Fill Layer");
            }

            var settings = (IColorFillSettings)fillLayer.FillSettings;

            settings.Color = Color.Red;
            fillLayer.Update();
            im.Save(exportPath);
            break;
        }
    }
}

Conclusion

Dans cet article, vous avez exploré quelques-unes des nombreuses possibilités d’ajout d’un calque de remplissage dans les fichiers PSD. Vous avez appris à ajouter un calque à partir de zéro, ainsi qu’à ajouter un calque à partir de fichiers PSD existants. Différents types de couches de remplissage dégradé sont également abordés avec des exemples. Il existe de nombreuses autres fonctionnalités intéressantes offertes par l’API Aspose.PSD for .NET. N’hésitez pas à nous contacter via Forums d’assistance gratuits en cas de problème.

Voir également