Agregar capa de relleno en photoshop

Las fotos son una forma muy útil de reflejar información. Los archivos de formato PSD se utilizan para crear imágenes. Sin embargo, podría haber escenarios como editar varios archivos de Photoshop en la misma línea. Por ejemplo, una aplicación de procesamiento de fotografías puede necesitar agregar una capa en varios documentos de Photoshop, junto con otras operaciones. Aspose.PSD for .NET La API ofrece muchas funciones para trabajar con PSD, PSB, AI y muchos otros formatos de archivo. Exploremos los siguientes casos de uso relacionados con la adición de una capa en archivos PSD:

Agregue una capa de relleno en tiempo de ejecución en un documento de Photoshop usando C#

Aspose.PSD for .NET API admite la creación de una capa de relleno en un archivo PSD. No necesariamente necesita cargar la capa desde un archivo existente. Simplemente siga los pasos a continuación para agregar una capa de relleno en tiempo de ejecución en el archivo PSD:

  1. Inicializar una instancia de la clase PsdImage con dimensiones de página
  2. Crea una instancia de la clase FillLayer
  3. Establecer el nombre para mostrar de la capa
  4. Añadir la capa a la imagen.

El siguiente fragmento de código muestra cómo agregar una capa de relleno en Photoshop usando 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);
}

Este fragmento de código generará un archivo PSD de dimensiones específicas donde la captura de pantalla a continuación muestra los nombres de tres capas de relleno exactamente como se establece en el código C# anterior:

Agregar capa en Photoshop

Agregue una capa de relleno existente en un archivo PSD usando C#

Ya hemos aprendido a crear y agregar nuevas capas de relleno. Veamos cómo agregar una capa desde un archivo de Photoshop existente. Las siguientes son las posibilidades de agregar capas de relleno existentes:

i) Agregue una capa de relleno con relleno de patrón usando C#

Un relleno de patrón puede tener una imagen, una línea o una sombra para llenar el área. Debe seguir los pasos a continuación para agregar una capa con Patten Fill en una imagen PSD:

  1. Cargar archivo PSD fuente
  2. Iterar a través de todas las capas y buscar FillLayer
  3. Establecer diferentes configuraciones para la capa
  4. Editar la capa de relleno
  5. Guarda la imagen

El fragmento de código a continuación muestra cómo agregar una capa de relleno con relleno de patrón usando C#:

// Agregar soporte de capas de relleno: Patrón
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");
            }
            // Edición 
            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) Agregue una capa de relleno con relleno degradado usando C#

También puede utilizar el relleno degradado para rellenar una capa en un documento de Photoshop. Aspose.PSD for .NET API admite los siguientes tipos de rellenos degradados:

  • Lineal
  • Diamante
  • Radial
  • reflejado
  • Ángulo

A continuación se muestran los pasos para agregar una capa con un relleno degradado:

El fragmento de código a continuación se basa en estos pasos y muestra cómo agregar una capa GradientFill en un documento de Photoshop usando 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 });
    }
}

Este fragmento de código generará cinco archivos diferentes, cada uno con un tipo diferente de relleno degradado en la capa del archivo PSD.

iii) Agregue una capa de relleno con relleno de color usando C#

Puede agregar una capa con relleno de color en un documento de Photoshop, un archivo PSD. Siga los pasos a continuación para agregar o crear una capa de relleno con relleno de color:

  1. Imagen PSD de fuente de carga
  2. Verifique todas las capas y busque FillLayer
  3. Leer la configuración de relleno de la capa
  4. Establecer color de relleno y actualizar la capa
  5. Guardar la imagen PSD

El fragmento de código a continuación se basa en los pasos mencionados anteriormente que muestran cómo agregar una capa de relleno en un documento de Photoshop usando C#:

// Para obtener ejemplos completos y archivos de datos, vaya a 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;
        }
    }
}

Conclusión

En este artículo, ha explorado algunas de las muchas posibilidades para agregar una capa de relleno en archivos PSD. Ha aprendido cómo agregar una capa desde cero, así como también cómo agregar una capa desde archivos PSD existentes. También se abordan diferentes tipos de capas de relleno de degradado junto con ejemplos. Hay muchas otras características interesantes que ofrece Aspose.PSD for .NET API. No dude en ponerse en contacto con nosotros a través de Foros de soporte gratuitos en caso de que tenga alguna inquietud.

Ver también