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:
- C# API för att lägga till nytt lager i PSD
- Lägg till ett nytt lager till PSD
- Lägg till ett nytt textlager till PSD
- 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:
- Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
- Förbered sedan ett objekt att lägga till, till exempel rektangel.
- Anropa sedan AddRegularLayer()-metoden.
- Alternativt kan du ställa in lagerpositionen som Top, Left, Right och Bottom.
- Efter det, tilldela objektet till lagret med hjälp av metoden SaveArgb32Pixels().
- 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());
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:
- Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
- Därefter definierar du en rektangel.
- Anropa sedan AddTexLayer()-metoden. Det tar textinmatning och ett rektangelobjekt som argument.
- Efter det ställer du in lagerpositionen som Top, Left, Right och Bottom.
- 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());
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:
- Först laddar du PSD-filen som PsdImage med hjälp av klassen Image.
- Öppna sedan PNG-bildfilen i en ström.
- Skapa sedan en instans av klassen Layer med stream-objektet.
- Efter det, anropa AddLayer()-metoden. Det tar Layer-objektet som ett argument.
- 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);
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.