코어 API
코어 API
PsdImage은 PSD/PSB 문서를 로드하고, 검사하고, 저장하기 위한 진입점입니다. 추상 Image 기본 클래스를 확장하며, 이 클래스는 Width, Height, Bounds, Load(), Save(), 및 Dispose()을 선언합니다.
문서 로드 및 저장
Image.Load()은 파일 경로나 Stream을 받아들이고 Image를 반환합니다; 결과를 PsdImage으로 캐스팅하면 문서의 나머지 부분에 접근할 수 있습니다. PsdImage.Save()는 문서를 파일 경로나 스트림으로 다시 기록합니다.
using var image = (PsdImage)Image.Load(inputPath);
// ... inspect or edit ...
image.Save(outputPath);문서 헤더 속성
PsdImage은 파싱된 헤더를 타입이 지정된 속성으로 노출합니다: Width, Height, BitsPerChannel, ColorMode, Version, Compression, Size, 및 IsFlatten.
Console.WriteLine($"Width: {image.Width}, Height: {image.Height}");
Console.WriteLine($"ColorMode: {image.ColorMode}, Version: {image.Version}");
Console.WriteLine($"Compression: {image.Compression}, IsFlatten: {image.IsFlatten}");이미지 리소스
PsdImage.ImageResources은 파싱된 ResourceBlock[] 배열을 반환합니다. 이 FOSS 빌드에서는 ImageResources, GlobalLayerResources, ActiveLayer, 및 HasTransparencyData를 읽을 수 있지만 재할당할 수 없습니다 — 해당 세터는 NotSupportedException을 발생시킵니다.
foreach (ResourceBlock resource in image.ImageResources)
{
Console.WriteLine($"Resource {resource.ID}: {resource.Name} ({resource.DataSize} bytes)");
}팁 및 모범 사례
- 항상
Image.Load()의 결과를PsdImage로 캐스팅하여 PSD 전용 멤버에 접근하십시오. Dispose()에 적합한 객체는using구문으로 감싸세요;PsdImage는IDisposable을 구현합니다.ImageResources,GlobalLayerResources,ActiveLayer, 및HasTransparencyData은 setter를 노출하지만 읽기 전용으로 취급하십시오.image.Layers에 인덱싱하기 전에image.Layers.Length를 확인하십시오 — 평탄화된 문서는 레이어가 없을 수 있습니다.
일반적인 문제
| 문제 | 원인 | 수정 |
|---|---|---|
NotSupportedException은(는) ImageResources을 설정할 때 | 이 속성은 setter가 있음에도 불구하고 FOSS 빌드에서는 읽기 전용입니다. | 값을 읽으세요; 재할당을 시도하지 마세요. |
플랫화된 문서에 빈 image.Layers 배열 | IsFlatten은(는) true이며 문서에 파싱된 레이어가 없습니다. | image.Layers에 인덱싱하기 전에 image.Layers.Length (또는 image.IsFlatten)을 확인하십시오 |
FAQ
PSD 문서를 로드하면 픽셀 데이터를 디코딩합니까?
아니요. PsdImage.Load()은 문서 헤더, 레이어 메타데이터 및 리소스를 디코딩하거나 픽셀 데이터를 렌더링하지 않고 파싱합니다.
PSD 파일을 다른 이미지 형식으로 변환할 수 있나요?
아니요. 이 라이브러리는 PSD/PSB 문서만 로드하고, 검사하고, 저장합니다 — 픽셀 데이터를 렌더링하거나 다른 이미지 형식으로 변환하지 않습니다.
API Reference 요약
| 클래스/메서드 | 설명 |
|---|---|
Image.Load(string) / Image.Load(Stream) | PSD 또는 PSB 문서를 로드합니다 |
PsdImage.Save(string) / PsdImage.Save(Stream) | 문서를 저장합니다 |
PsdImage.Width / Height / BitsPerChannel / ColorMode / Version / Compression / Size / IsFlatten | 문서 헤더 속성 |
PsdImage.ImageResources | 구문 분석된 이미지 리소스 블록 (읽기 전용) |