PsdImage a
Layer, která .NET vývojářům poskytuje programový přístup ke struktuře PSD dokumentu bez
nativních závislostí při kompilaci. Knihovna načítá rozměry souboru PSD/PSB, barevný režim, bitovou hloubku a kompresní
metodu a zpřístupňuje každou vrstvu přes PsdImage.Layers: každá Layer uvádí svůj název,
ohraničení, neprůhlednost, viditelnost a klíč režimu prolnutí (BlendMode), spolu s nízkoúrovňovými
informacemi o kanálech (ChannelInformation) a daty masky (LayerMaskData). Podmnožina
metadat vrstvy — název, ohraničení (Left/Top/Right/Bottom) a režim prolnutí — může být
upravená přímo a uložena zpět na disk pomocí PsdImage.Save(); vše ostatní na
povrchu je záměrně pouze ke čtení v tomto FOSS sestavení. Aspose.PSD FOSS for .NET je licencována pod MIT. Nainstalujte ji pomocí
dotnet add package Aspose.PSD.FOSS — knihovna nemá žádné třetí strany nativní
závislosti, pouze .NET BCL. Pro rodinu podnikového produktu viz Aspose.PSD — Enterprise Product Family.Image.Load(filePath) nebo Image.Load(stream) otevře soubor a vrátí Image, přetypujte na PsdImage pro přístup k PSD-specifickým funkcímPsdImage.Width, Height a Size udávají rozměry plátnaPsdImage.ColorMode (ColorModes), BitsPerChannel a Compression (CompressionMethod) popisují, jak jsou pixelová data kódovánaPsdImage.Version (PsdVersion) rozlišuje standardní PSD od varianty velkého dokumentu PSBPsdImage.Layers vrací každou Layer v pořadí dokumentu; PsdImage.ActiveLayer uvádí, která je aktivníLayer vystavuje Name, Bounds, Opacity, IsVisible a BlendModeKey (BlendMode)Layer.ChannelInformation a Layer.LayerMaskData vystavují metadata kanálů a masek pro podrobnější kontroluLayer.ChannelsCount uvádí, kolik obrazových kanálů vrstva neseLayer.Name, Layer.Left/Top/Right/Bottom a Layer.BlendModeKey lze nastavit přímoPsdImage.Save(filePath) nebo PsdImage.Save(stream) uloží upravený dokument zpět na diskImage.Load potvrdí, že úpravy projdou round-trip správněNotSupportedException, pokud jsou nastaveny — tato verze podporuje úpravy pouze metadat, nikoli úplné pře-autorováníPsdImage.ImageResources a GlobalLayerResources vystavují kolekce ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo hlásí informace o maskách vrstev v celém dokumentuPsdImage.IsFlatten a HasTransparencyData hlásí příznaky na úrovni dokumentuPsdLoadException a PsdSaveException zobrazují chyby načítání/ukládání s jasnými zprávamiNačtěte soubor pomocí Image.Load a přetypujte výsledek na PsdImage pro členy specifické pro PSD.
using var image = (PsdImage)Image.Load("test.psd");
Console.WriteLine($"Width: {image.Width}, Channels: {image.ChannelsCount}, Layers: {image.Layers.Length}");
Layer layer = image.Layers[0];
Console.WriteLine($"Bounds: {layer.Bounds}, BlendMode: {layer.BlendModeKey}, Opacity: {layer.Opacity}, Visible: {layer.IsVisible}");
Název vrstvy, ohraničení a režim prolnutí lze změnit přímo a uložit zpět na disk.
using (var image = (PsdImage)Image.Load("test.psd"))
{
image.Layers[0].Name = "Renamed layer";
image.Layers[0].Left = 10;
image.Layers[0].Top = 20;
image.Layers[0].Right = 40;
image.Layers[0].Bottom = 60;
image.Layers[0].BlendModeKey = BlendMode.Multiply;
image.Save("edited.psd");
}
using var reloaded = (PsdImage)Image.Load("edited.psd");
Console.WriteLine($"Name: {reloaded.Layers[0].Name}, BlendMode: {reloaded.Layers[0].BlendModeKey}");
Informace o kanálech lze číst, ale nelze je přiřadit — pokus o nastavení vyvolá NotSupportedException.
using var image = (PsdImage)Image.Load("test.psd");
Layer layer = image.Layers[0];
ChannelInformation[] channelInformation = layer.ChannelInformation;
Console.WriteLine($"Channel count: {layer.ChannelsCount}, First channel length: `NotSupportedException`");
// layer.ChannelInformation = channelInformation; // throws NotSupportedException
Aspose.PSD FOSS for .NET je licencován pod licencí MIT. Můžete jej používat, upravovat a šířit podle podmínek licence MIT, včetně komerčních produktů.
Viz sekci instalace výše pro aktuální instalační příkaz.
Načítá a ukládá soubory PSD a PSB (Photoshop large document). Není schopna renderovat ani exportovat pixelová data do jiných rastrových formátů, jako jsou PNG nebo JPEG.
PsdImage (podtřída třídy Image). Načtěte dokument pomocí PsdImage.Load, poté přečtěte jeho kolekci Layers a vlastnosti hlavičky.
Ano — Layer poskytuje funkční setter pro několik vlastností, jako je viditelnost a název, a PsdImage.Layers samotné má funkční setter pro nahrazení kolekce. Několik konkrétních vlastností (informace o kanálech, data masky, rozsahy prolnutí a některé zdroje na úrovni dokumentu) je v této FOSS verzi jen ke čtení a při nastavení vyvolá NotSupportedException.