PsdImage e
Layer, oferecendo aos desenvolvedores .NET acesso programático à estrutura de um documento PSD sem
dependências nativas para compilar. A biblioteca lê as dimensões, modo de cor, profundidade de bits e compressão
de um arquivo PSD/PSB, e expõe cada camada através de PsdImage.Layers: cada Layer relata seu nome,
limites, opacidade, visibilidade e chave do modo de mesclagem (BlendMode), juntamente com informações de nível inferior
informação de canal (ChannelInformation) e dados de máscara (LayerMaskData). Um subconjunto de
metadados da camada — nome, limites (Left/Top/Right/Bottom), e modo de mesclagem — pode ser
modificado in-place e persistido de volta ao disco com PsdImage.Save(); todo o resto na
superfície é somente leitura por design nesta compilação FOSS. Aspose.PSD FOSS for .NET é licenciado sob MIT. Instale-o com
dotnet add package Aspose.PSD.FOSS — a biblioteca não tem dependências nativas de terceiros
dependências, apenas o .NET BCL. Para a família de produtos empresariais, veja Aspose.PSD — Enterprise Product Family.Image.Load(filePath) ou Image.Load(stream) abre um arquivo e retorna um Image, convertido para PsdImage para acesso específico a PSDPsdImage.Width, Height e Size relatam as dimensões da telaPsdImage.ColorMode (ColorModes), BitsPerChannel e Compression (CompressionMethod) descrevem como os dados de pixel são codificadosPsdImage.Version (PsdVersion) distingue o PSD padrão da variante PSB de documento grandePsdImage.Layers retorna cada Layer na ordem do documento; PsdImage.ActiveLayer indica qual está ativoLayer expõe Name, Bounds, Opacity, IsVisible e BlendModeKey (BlendMode)Layer.ChannelInformation e Layer.LayerMaskData expõem metadados de canal e máscara para inspeção mais aprofundadaLayer.ChannelsCount informa quantos canais de imagem uma camada contémLayer.Name, Layer.Left/Top/Right/Bottom e Layer.BlendModeKey podem ser definidos diretamentePsdImage.Save(filePath) ou PsdImage.Save(stream) persiste o documento modificado de volta ao discoImage.Load confirma que as edições retornam corretamenteNotSupportedException se definidas — esta compilação suporta apenas edições de metadados, não reautoria completaPsdImage.ImageResources e GlobalLayerResources expõem coleções ResourceBlock/LayerResourcePsdImage.GlobalLayerMaskInfo relata informações de máscara de camada em todo o documentoPsdImage.IsFlatten e HasTransparencyData relatam flags ao nível do documentoPsdLoadException e PsdSaveException expõem erros de carregamento/salvamento com mensagens clarasCarregue um arquivo com Image.Load e converta o resultado para PsdImage para acessar membros específicos de 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}");
O nome da camada, os limites e o modo de mesclagem podem ser alterados no local e salvos de volta no disco.
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}");
As informações do canal podem ser lidas, mas não reatribuídas — tentar defini-las gera 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 é licenciado sob a licença MIT. Você pode usar, modificar e redistribuí-lo sob os termos da licença MIT, incluindo em produtos comerciais.
Consulte a seção de instalação acima para o comando de instalação atual.
Ele carrega e salva arquivos PSD e PSB (documento grande do Photoshop). Não renderiza nem exporta dados de pixel para outros formatos raster, como PNG ou JPEG.
PsdImage (uma subclasse de Image). Carregue um documento com PsdImage.Load, então leia sua coleção Layers e as propriedades do cabeçalho.
Sim — Layer expõe um setter funcional para várias propriedades, como visibilidade e nome, e PsdImage.Layers em si tem um setter funcional para substituir a coleção. Algumas propriedades específicas (informações de canal, dados de máscara, intervalos de mesclagem e alguns recursos de nível de documento) são somente leitura nesta compilação FOSS e lançam NotSupportedException se definidas.