1. Produkty
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for .NET

Aspose.PSD FOSS dla .NET

Open-source .NET biblioteka do ładowania, przeglądania i zapisywania plików PSD/PSB z dostępem do metadanych warstw. Na licencji MIT, nie wymaga Adobe Photoshop.

Biblioteka Open-Source .NET dla plików PSD/PSB

Aspose.PSD FOSS for .NET jest darmową, licencjonowaną na MIT, czystą biblioteką C# do ładowania, przeglądania, i zapisywania plików Adobe Photoshop PSD i PSB bez wymogu posiadania Adobe Photoshop ani jakiegokolwiek własnościowego środowiska uruchomieniowego. Udostępnia lekką, samodzielną API skoncentrowaną na PsdImage i Layer, dając programistom .NET programowy dostęp do struktury dokumentu PSD bez natywnych zależności przy kompilacji. Biblioteka odczytuje wymiary pliku PSD/PSB, tryb kolorów, głębię bitową i metodę kompresji i udostępnia każdą warstwę poprzez PsdImage.Layers: każda Layer zgłasza swoją nazwę, granice, krycie, widoczność oraz klucz trybu mieszania (BlendMode), wraz z niższego poziomu informacjami o kanale (ChannelInformation) oraz danymi maski (LayerMaskData). Podzbiór metadanych warstwy — nazwa, granice (Left/Top/Right/Bottom) i tryb mieszania — może być modyfikowany w miejscu i zapisywany z powrotem na dysk przy użyciu PsdImage.Save(); wszystko inne na powierzchni jest z założenia tylko do odczytu w tej wersji FOSS. Aspose.PSD FOSS for .NET jest licencjonowany na warunkach MIT. Zainstaluj go za pomocą dotnet add package Aspose.PSD.FOSS — biblioteka nie ma żadnych zewnętrznych natywnych zależności, jedynie .NET BCL. Dla rodziny produktów korporacyjnych zobacz Aspose.PSD — Enterprise Product Family.

Ładuj i przeglądaj pliki PSD/PSB Files

  • Image.Load(filePath) lub Image.Load(stream) otwiera plik i zwraca Image, rzutowany na PsdImage w celu uzyskania dostępu specyficznego dla PSD
  • PsdImage.Width, Height i Size podają wymiary płótna
  • PsdImage.ColorMode (ColorModes), BitsPerChannel i Compression (CompressionMethod) opisują, w jaki sposób dane pikseli są kodowane
  • PsdImage.Version (PsdVersion) rozróżnia standardowy PSD od wariantu dużego dokumentu PSB

Waliduj i kataloguj pliki projektowe

  • Zweryfikuj partię plików projektowych przed przekazaniem ich do procesu downstream
  • Zbuduj lekki katalog zasobów wymiarów i trybów kolorów PSD/PSB
  • Wykryj pliki PSB (duży-dokument), które wymagają innego traktowania niż standardowe PSD

Praca z warstwami

  • PsdImage.Layers zwraca każdy Layer w kolejności dokumentu; PsdImage.ActiveLayer informuje, który jest aktywny
  • Każdy Layer udostępnia Name, Bounds, Opacity, IsVisible oraz BlendModeKey (BlendMode)
  • Layer.ChannelInformation i Layer.LayerMaskData udostępniają metadane kanałów i masek do głębszej inspekcji
  • Layer.ChannelsCount podaje, ile kanałów obrazu posiada warstwa

Struktura warstwy audytu

  • Audyt struktury warstw pliku PSD bez otwierania Photoshopa
  • Wygeneruj raport nazw warstw, ich widoczności i trybów mieszania do przeglądu projektu
  • Zidentyfikuj ukryte lub warstwy o zerowej przezroczystości pozostawione po wcześniejszych edycjach

Edytuj podstawowe metadane warstwy

  • Layer.Name, Layer.Left/Top/Right/Bottom i Layer.BlendModeKey można ustawiać bezpośrednio
  • PsdImage.Save(filePath) lub PsdImage.Save(stream) zapisuje zmodyfikowany dokument z powrotem na dysk
  • Ponowne wczytanie zapisanego pliku przy pomocy Image.Load potwierdza, że zmiany przeszły pełny cykl
  • Właściwości nie wymienione powyżej (informacje o kanałach, dane maski, zakresy mieszania, zasoby obrazu) zgłaszają NotSupportedException, jeśli zostaną ustawione — ta kompilacja obsługuje jedynie edycje metadanych, a nie pełne ponowne tworzenie

Lekkie, Skryptowalne Edycje

  • Zmieniaj nazwy warstw programowo jako część zautomatyzowanego potoku organizacji plików
  • Przemieszczaj lub zmień rozmiar ramki ograniczającej warstwy bez użycia narzędzia projektowego
  • Masowo aktualizuj tryby mieszania w wielu plikach dla zachowania spójności

Sprawdź bloki zasobów i stan dokumentu

  • PsdImage.ImageResources i GlobalLayerResources udostępniają kolekcje ResourceBlock/LayerResource
  • PsdImage.GlobalLayerMaskInfo raportuje informacje o masce warstwy w całym dokumencie
  • PsdImage.IsFlatten i HasTransparencyData raportują flagi na poziomie dokumentu
  • PsdLoadException i PsdSaveException zgłaszają błędy ładowania/zapisu z czytelnymi komunikatami

Diagnostyka i inspekcja

  • Zdiagnozuj, dlaczego konkretny plik PSD nie ładuje się, z użyciem typowanego wyjątku zamiast ogólnego błędu
  • Sprawdź, czy plik został zapisany w formie spłaszczonej przed dalszym przetwarzaniem
  • Zbadaj osadzone bloki zasobów pod kątem metadanych na poziomie formatu

Wczytaj plik PSD i sprawdź jego warstwy

Załaduj plik za pomocą Image.Load i rzutuj wynik na PsdImage, aby uzyskać dostęp do członków specyficznych dla 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}");

Edytuj metadane warstwy i zapisz

Nazwę warstwy, granice i tryb mieszania można zmienić w miejscu i zapisać z powrotem na dysk.

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}");

Odczyt informacji o kanale (tylko do odczytu)

Informacje o kanale można odczytać, ale nie można ich ponownie przypisać — próba ustawienia ich powoduje wyrzucenie 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

Najczęściej Zadawane Pytania

Jaki jest model licencjonowania?

Aspose.PSD FOSS for .NET jest na licencji MIT. Możesz go używać, modyfikować i rozpowszechniać na warunkach licencji MIT, w tym w produktach komercyjnych.

Jak zainstalować Aspose.PSD FOSS for .NET?

Zobacz sekcję instalacji powyżej, aby uzyskać bieżące polecenie instalacji.

Jakie formaty może Aspose.PSD FOSS for .NET odczytywać i zapisywać?

Ładuje i zapisuje pliki PSD i PSB (Photoshop large document). Nie renderuje ani nie eksportuje danych pikseli do innych formatów rastrowych, takich jak PNG lub JPEG.

Jaka jest główna klasa punktu wejścia?

PsdImage (podklasa Image). Załaduj dokument przy użyciu PsdImage.Load, a następnie odczytaj jego kolekcję Layers oraz właściwości nagłówka.

Czy mogę modyfikować metadane warstwy?

Tak — Layer udostępnia działający setter dla kilku właściwości, takich jak widoczność i nazwa, a PsdImage.Layers sam w sobie ma działający setter do zastępowania kolekcji. Niektóre konkretne właściwości (informacje o kanale, dane maski, zakresy mieszania i niektóre zasoby na poziomie dokumentu) są tylko do odczytu w tej wersji FOSS i wyrzucają NotSupportedException, jeśli zostaną ustawione.

  

Zasoby Wsparcia i Nauki

 Polski