Πώς να εργαστείτε με το Aspose.PSD FOSS Core API στο .NET
Aspose.PSD FOSS για .NET φορτώνει και ελέγχει τη δομή του εγγράφου PSD/PSB μέσω του PsdImage, μια υποκλάση του Image. Αυτό το άρθρο καλύπτει τη φόρτωση ενός εγγράφου, την ανάγνωση της κεφαλίδας και των πόρων εικόνας, και την αποθήκευσή του πίσω στον δίσκο.
Οδηγός βήμα προς βήμα
Βήμα 1: Εγκατάσταση του πακέτου
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-.NET.git
cd Aspose.PSD-FOSS-for-.NET
dotnet buildΒήμα 2: Εισαγωγή των απαιτούμενων κλάσεων
using Aspose.PSD.FileFormats.Psd;Βήμα 3: Φόρτωση ενός PSD/PSB εγγράφου
PsdImage.Load ανοίγει ένα έγγραφο από διαδρομή αρχείου ή ροή:
using var image = PsdImage.Load("input.psd");Βήμα 4: Ελέγξτε την κεφαλίδα του εγγράφου
PsdImage εκθέτει τα πεδία κεφαλίδας που διαβάζονται από το αναλυμένο έγγραφο: Width, Height, BitsPerChannel, ColorMode (μια τιμή ColorModes), και Compression (μια τιμή CompressionMethod):
Console.WriteLine($"{image.Width}x{image.Height}, {image.BitsPerChannel} bpc");
Console.WriteLine($"Color mode: {image.ColorMode}"); // e.g. ColorModes.Rgb
Console.WriteLine($"Compression: {image.Compression}"); // e.g. CompressionMethod.RLE
Console.WriteLine($"Flattened: {image.IsFlatten}");Οι τιμές του ColorModes περιλαμβάνουν Bitmap, Grayscale, Indexed, Rgb και Cmyk, μεταξύ άλλων (Multichannel, Duotone, Lab). Οι τιμές του CompressionMethod είναι Raw, RLE, ZipWithoutPrediction και μια παραλλαγή ZIP-με-πρόβλεψη.
Βήμα 5: Διαβάστε τα μπλοκ πόρων εικόνας
ImageResources επιστρέφει τις αναλυμένες καταχωρήσεις ResourceBlock του εγγράφου. Κάθε μπλοκ εκθέτει ID, Name και Size:
foreach (var resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID} \"{resource.Name}\" - {resource.Size} bytes");
}ImageResources είναι μόνο για ανάγνωση σε αυτήν τη FOSS έκδοση — η ανάθεση σε αυτό προκαλεί εξαίρεση NotSupportedException (δείτε τους Γνωστούς Περιορισμούς στο FAQ).
Βήμα 6: Αποθηκεύστε το έγγραφο
image.Save("output.psd");Συνηθισμένα προβλήματα και διορθώσεις
PsdLoadException κατά τη φόρτωση ενός αρχείου. Η είσοδος δεν είναι έγγραφο PSD/PSB έγκυρο, ή η κεφαλίδα του απέτυχε στην επικύρωση. Επιβεβαιώστε ότι το αρχείο είναι ένα αυθεντικό αρχείο PSD/PSB πριν το φορτώσετε.
NotSupportedException κατά τη ρύθμιση ImageResources or GlobalLayerResources. Αυτοί οι setters δεν υποστηρίζονται σε αυτήν τη FOSS έκδοση. Θεωρήστε ImageResources ως μόνο για ανάγνωση.
ColorMode or Compression εκτυπώνεται ως αριθμητική τιμή αντί για όνομα. Μετατρέψτε την ιδιότητα στον τύπο enum της ρητά, ή χρησιμοποιήστε .ToString(), για να λάβετε το αναγνώσιμο όνομα (ColorModes.Rgb, όχι 3).
Συχνές ερωτήσεις
Μπορώ να φορτώσω ένα αρχείο PSD από ροή αντί για διαδρομή αρχείου;
Ναι — PsdImage.Load διαθέτει υπερφόρτωση που δέχεται ένα Stream.
Το ImageResources περιλαμβάνει δεδομένα στρώσεων;
Όχι. ImageResources κρατά μπλοκ πόρων επιπέδου εγγράφου (αναλύονται από την ενότητα πόρων εικόνας PSD). Τα δεδομένα επιπέδου στρώματος διαβάζονται μέσω PsdImage.Layers — δείτε Εργασία με Στρώματα.
Είναι το PsdImage.Version η έκδοση του μορφότυπου αρχείου PSD;
Όχι. Το PsdImage.Version αναφέρει έναν εσωτερικό αριθμό έκδοσης API συμβατό με Aspose.PSD (προς το παρόν 6) — δεν σχετίζεται με το αν το φορτωμένο αρχείο είναι PSD ή PSB.