Lägg till nya lager i PSD med C#

PSD(Photoshop Document) är ett inbyggt bildfilformat som används av Adobes populära Photoshop-applikation. Det används ofta för att skapa logotyper, broschyrer och andra bilder där PSD-filen innehåller flera lager. I vissa fall kan vi behöva manipulera PSD-filerna programmatiskt. I den här artikeln kommer vi att lära oss hur man lägger till ett nytt lager i en PSD med C#.

Följande ämnen ska behandlas i den här artikeln:

  1. C# API för att lägga till nytt lager i PSD
  2. Lägg till ett nytt lager till PSD
  3. Lägg till ett nytt textlager till PSD
  4. Skapa ett lager från bild i PSD

C# API för att lägga till nytt lager i PSD

För att skapa ett nytt lager i en PSD-fil kommer vi att använda Aspose.PSD for .NET API. Det stöder att skapa, redigera eller manipulera PSD och flera andra filformat som stöds.

Klassen PsdImage i API:t tillåter att ladda, redigera och spara PSD-filer. Metoden AddRegularLayer() för den här klassen lägger till ett nytt vanligt lager. Medan metoden AddTextLayer(string, Rectangle) lägger till ett nytt textlager till PSD:n. Den här klassen tillhandahåller också metoden Save(string) som sparar PSD:n till den angivna filplatsen.

Vänligen antingen ladda ner DLL för API:t eller installera den med NuGet.

PM> Install-Package Aspose.PSD

Lägg till nytt lager till PSD med C#

Vi kan lägga till ett nytt lager till en PSD-fil genom att följa stegen nedan:

  1. Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
  2. Förbered sedan ett objekt att lägga till, till exempel rektangel.
  3. Anropa sedan AddRegularLayer()-metoden.
  4. Alternativt kan du ställa in lagerpositionen som Top, Left, Right och Bottom.
  5. Efter det, tilldela objektet till lagret med hjälp av metoden SaveArgb32Pixels().
  6. Slutligen sparar du utdatafilen med metoden Save().

Följande kodexempel visar hur man lägger till ett nytt lager till en PSD-fil i C#.

// Detta kodexempel visar hur man skapar nya lager i en PSD-bildfil.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\OneLayerEdited.psd";

// Ladda en befintlig PSD
var im = (PsdImage)Image.Load(sourceFileName);

// Förbereder två int-arrayer
var data1 = new int[2500];
var data2 = new int[2500];

// Definiera rektanglar
var rect1 = new Rectangle(0, 0, 50, 50);
var rect2 = new Rectangle(0, 0, 100, 25);

for (int i = 0; i < 2500; i++)
{
    data1[i] = -10000000;
    data2[i] = -10000000;
}

// Lägg till lager 1
var layer1 = im.AddRegularLayer();
layer1.Left = 25;
layer1.Top = 25;
layer1.Right = 75;
layer1.Bottom = 75;
layer1.SaveArgb32Pixels(rect1, data1);

// Lägg till lager 2
var layer2 = im.AddRegularLayer();
layer2.Left = 25;
layer2.Top = 150;
layer2.Right = 125;
layer2.Bottom = 175;
layer2.SaveArgb32Pixels(rect2, data2);

// Spara PSD
im.Save(exportPath, new PsdOptions());
Add-New-Layer-to-PSD-Programmatically-using-CSharp

Lägg till nytt lager till PSD Programmatiskt med C#

Lägg till nytt textlager till PSD med C#

Vi kan lägga till ett nytt textlager till en PSD-fil genom att följa stegen nedan:

  1. Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
  2. Därefter definierar du en rektangel.
  3. Anropa sedan AddTexLayer()-metoden. Det tar textinmatning och ett rektangelobjekt som argument.
  4. Efter det ställer du in lagerpositionen som Top, Left, Right och Bottom.
  5. Slutligen sparar du utdatafilen med metoden Save().

Följande kodexempel visar hur man lägger till ett nytt textlager till en PSD-fil i C#.

// Detta kodexempel visar hur man skapar nya lager i en PSD-bildfil.
string sourceFileName = @"C:\Files\PSD\OneLayer.psd";
string exportPath = @"C:\Files\PSD\TextLayer.psd";

// Ladda en befintlig PSD
var im = (PsdImage)Image.Load(sourceFileName);

// Lägg till ett textlager
var layer1 = im.AddTextLayer("Hello", new Rectangle(0, 0, 120, 50));
layer1.Left = 10;
layer1.Top = 25;

// Spara PSD
im.Save(exportPath, new PsdOptions());
Add-New-Text-Layer-to-PSD-using-CSharp

Lägg till nytt textlager till PSD Programmatiskt med C#

Skapa nytt lager från bild i PSD med C#

Vi kan också lägga till ett nytt lager från en PNG- eller JPG-bild till en PSD-fil genom att följa stegen nedan:

  1. Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
  2. Öppna sedan PNG-bildfilen i en ström.
  3. Skapa sedan en instans av klassen Layer med stream-objektet.
  4. Efter det, anropa AddLayer()-metoden. Det tar Layer-objektet som ett argument.
  5. Slutligen sparar du utdatafilen med metoden Save().

Följande kodexempel visar hur man lägger till ett nytt lager från en PNG-bild till en PSD-fil i C#.

// Detta kodexempel visar hur man skapar ett nytt lager från en PNG-bild i en PSD-bildfil.
string outputFilePath = @"C:\Files\PSD\PsdResult.psd";

// Skapa en ny PSD-bild
var image = new PsdImage(200, 200);

// Ladda en PNG-bild
string filePath = @"C:\Files\PSD\aspose_logo.png";
var stream = new FileStream(filePath, FileMode.Open);

Layer layer = null;
try
{
    // Lägg till lager till PSD
    layer = new Layer(stream);
    image.AddLayer(layer);
}
catch (Exception e)
{
    if (layer != null)
    {
        layer.Dispose();
    }
    throw e;
}

// Spara PSD
image.Save(outputFilePath);
Skapa-nytt-lager-från-bild-i-PSD-med-CSharp

Skapa nytt lager från bild i PSD med C#

Få gratis tillfällig licens

Du kan få en gratis tillfällig licens för att prova Aspose.PSD för .NET utan utvärderingsbegränsningar.

Slutsats

I den här artikeln har vi lärt oss hur man:

  • skapa en ny PSD-bild;
  • skapa ett nytt vanligt lager och ett textlager i en PSD-bild;
  • infoga en PNG- eller JPG-bild som ett nytt lager i PSD med C#.

Dessutom kan du lära dig mer om Aspose.PSD för .NET med hjälp av dokumentationen och utforska olika funktioner som stöds av API:et. I händelse av oklarheter, var god kontakta oss på vårt forum.

Se även