소개
Aspose.PSD FOSS for Python은(는) Python 코드에서 PSD 및 PSB(Photoshop 대형 문서) 파일을 작업하기 위한 새로운 오픈소스 라이브러리입니다. MIT 라이선스로 배포되며, 서드파티 네이티브 종속성이 전혀 없고 런타임에 Python 표준 라이브러리만 필요합니다. 패키지는 aspose_psd_foss으로 가져옵니다.
라이브러리는 PsdImage 클래스를 중심으로 구성되며, 이 클래스는 추상 Image 기본 클래스를 확장하고, Layer 클래스를 포함합니다. Image.load() / PsdImage.load()는 파일 경로나 스트림에서 문서를 로드하여 헤더 정보(width, height, color_mode, version, compression)와 파싱된 layers 컬렉션을 노출합니다; PsdImage.save()은 문서를 파일이나 스트림으로 다시 기록합니다. 두 클래스 모두 자동 정리를 위한 with 구문을 지원합니다. 각 Layer은 자체 메타데이터 — name, bounds, is_visible, opacity, clipping, blend_mode_key, 및 채널/마스크 정보 — 를 제공하며, 이 속성들의 일부는 제자리에서 변경하고 파일에 다시 저장할 수 있습니다.
이 릴리스는 상용 라이선스 없이 Python 코드베이스 내에서 PSD/PSB 파일을 검사하거나 제한된 메타데이터 편집이 필요한 개발자를 위한 것입니다 — 레이어 구조를 보고하는 에셋 파이프라인 도구, 전달 전에 레이어 이름을 바꾸거나 가시성을 토글하는 빌드 스크립트, 전체 렌더링 엔진 없이 PSD 헤더와 레이어 데이터를 읽어야 하는 테스트 픽스처 등. 이 라이브러리는 픽셀 데이터를 렌더링하거나 PSD/PSB을 다른 이미지 형식으로 변환하지 않습니다 — PSD/PSB 컨테이너 형식을 위한 메타데이터 중심의 읽기/쓰기 도구입니다.
포함 내용
문서 검사
PsdImage.load()은(는) PSD 또는 PSB 파일의 헤더를 타입이 지정된 속성 — width, height, bits_per_channel, color_mode, version, compression, size, is_flatten — 으로 파싱하며 픽셀 데이터를 디코딩하지 않습니다.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}")
print(f"ColorMode: {image.color_mode}, Version: {image.version}")
print(f"Layers: {image.layer_count}, Compression: {image.compression}")
레이어 메타데이터
각 항목은 PsdImage.layers에 있으며, 자체 경계, 가시성, 불투명도, 클리핑 및 블렌드 모드 메타데이터를 노출하는 Layer입니다.
from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
for layer in image.layers:
print(f"{layer.name}: {layer.bounds}, Visible={layer.is_visible}, Opacity={layer.opacity}")
지원되는 메타데이터 편집
레이어 속성의 일부는 현장에서 변경하고 PsdImage.save()을 통해 다시 기록할 수 있습니다: 이름, 가시성, 불투명도, 클리핑, 블렌드 모드 키, 그리고 네 개의 경계 가장자리.
from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode
with PsdImage.load("input.psd") as image:
layer = image.layers[0]
layer.name = f"{layer.name} (edited)"
layer.is_visible = not layer.is_visible
layer.opacity = 128
layer.blend_mode_key = BlendMode.MULTIPLY
image.save("output.psd")
빠른 시작
패키지를 설치한 후 PSD 또는 PSB 파일을 로드하고, 레이어를 검사한 다음 다시 저장합니다:
git clone https://github.com/aspose-psd-foss/Aspose.PSD-FOSS-for-Python.git
cd Aspose.PSD-FOSS-for-Python
# No packaging manifest is published yet -- run from this folder,
# or add it to PYTHONPATH:
export PYTHONPATH=$PWD:$PYTHONPATHfrom aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("input.psd") as image:
print(f"Width: {image.width}, Height: {image.height}, Layers: {image.layer_count}")
for layer in image.layers:
print(f" {layer.name}: {layer.bounds}")
image.save("output.psd")
지원되는 포맷
| 포맷 | 확장자 | 읽기 | 쓰기 |
|---|---|---|---|
| PSD | psd | ✓ | ✓ |
| PSB | psb | ✓ | ✓ |
오픈 소스 및 라이선스
Aspose.PSD FOSS for Python는 MIT 라이선스를 가지고 있으며, 로열티 없이 상용 제품에 사용할 수 있고, 평가용 워터마크나 사용 제한이 없습니다.
이 라이브러리는 서드파티 네이티브 종속성이 전혀 없으며 — 런타임에 Python 표준 라이브러리만 필요합니다.