.NET에서 Aspose.PSD FOSS Core API를 사용하는 방법
Aspose.PSD FOSS for .NET는 PsdImage을 통해 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 build2단계: 필요한 클래스 가져오기
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-with-prediction 변형입니다.
단계 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 (Known Limitations 섹션을 참조하십시오 FAQ).
단계 6: 문서 저장
image.Save("output.psd");일반적인 문제 및 해결 방법
PsdLoadException 파일을 로드할 때. 입력이 유효한 PSD/PSB 문서가 아니거나 헤더 검증에 실패했습니다. 로드하기 전에 파일이 정상적인 PSD/PSB 파일인지 확인하십시오.
NotSupportedException 설정할 때 ImageResources or GlobalLayerResources. 이 FOSS 빌드에서는 이러한 setter를 지원하지 않습니다. Treat ImageResources 읽기 전용으로 간주합니다.
ColorMode or Compression 이름 대신 숫자 값으로 출력됩니다. 속성을 해당 열거형 타입으로 명시적으로 캐스트하거나, 사용 .ToString(), 가독성 있는 이름을 얻으려면 (ColorModes.Rgb, 아니라 3).
자주 묻는 질문
파일 경로 대신 스트림에서 PSD 파일을 로드할 수 있나요?
예 — PsdImage.Load에는 Stream을(를) 받아들이는 오버로드가 있습니다.
ImageResources에 레이어 데이터가 포함되어 있나요?
아니오. ImageResources 문서 수준 리소스 블록을 보유합니다(PSD 이미지 리소스 섹션에서 파싱됨). 레이어 수준 데이터는 다음을 통해 읽어옵니다 PsdImage.Layers — 참조 레이어 작업.
PsdImage.Version가 PSD 파일 형식 버전인가요?
아니요. PsdImage.Version는 내부 Aspose.PSD 호환 API 버전 번호를 보고합니다(현재 6) — 로드된 파일이 PSD인지 PSB인지와는 무관합니다.