1. 제품
  2.   Aspose.PSD
  3.   Aspose.PSD FOSS for Python

Python용 Aspose.PSD FOSS

오픈소스 Python 라이브러리로, PSD/PSB 파일을 로드·검사·저장하고 레이어 메타데이터에 접근할 수 있습니다. MIT 라이선스이며, Adobe Photoshop이 필요 없습니다.

PSD/PSB 파일용 오픈소스 Python 라이브러리

Aspose.PSD FOSS for Python은 무료이며 MIT 라이선스를 가진 순수 Python 라이브러리로, 로드하고 검사하며, Adobe Photoshop PSD 및 PSB 파일을 저장할 수 있으며 Adobe Photoshop이나 어떤 독점 런타임도 필요하지 않습니다. 이 라이브러리는 PsdImage와 Layer를 중심으로 하는 가볍고 독립적인 API를 제공하여 Layer, Python 개발자가 네이티브 종속성 없이 PSD 문서 구조에 프로그래밍 방식으로 접근할 수 있게 합니다 컴파일에 필요한 네이티브 종속성이 없습니다. 라이브러리는 PSD/PSB 파일의 차원, 색상 모드, 비트 깊이 및 압축 방식을 읽고, PsdImage.layers를 통해 모든 레이어를 노출합니다: 각 Layer는 이름을 보고합니다, 경계, 불투명도, 가시성 및 블렌드 모드 키(BlendMode)를 보고하며, 하위 수준의 채널 정보(ChannelInformation)와 마스크 데이터(LayerMaskData)를 제공합니다. 레이어 메타데이터의 일부 — 이름, 경계(left/top/right/bottom), 및 블렌드 모드 — 는 현장에서 수정하고 PsdImage.save()를 사용해 디스크에 다시 저장할 수 있으며; 나머지는 이 FOSS 빌드에서는 설계상 읽기 전용입니다. Aspose.PSD FOSS for Python은 MIT 라이선스입니다. 설치하려면 pip install aspose-psd-foss — 이 라이브러리는 서드파티 네이티브 종속성이 없으며, 오직 Python 표준 라이브러리만 사용합니다. 엔터프라이즈 제품군에 대해서는 Aspose.PSD — Enterprise Product Family를 참고하십시오.

PSD/PSB 파일 로드 및 검사

  • Image.load(file_path) 은 파일을 열고 PsdImage 인스턴스를 반환합니다
  • PsdImage.width, height, channels_count 은 캔버스 크기와 채널 수를 보고합니다
  • 문서 헤더 세부 정보는 파싱된 파일의 색상 모드와 압축 메타데이터에서 읽어옵니다
  • PsdImage.layers 은 문서 순서대로 Layer 객체의 전체 목록을 반환합니다

디자인 파일 검증 및 카탈로그화

  • 디자인 파일 배치를 하위 프로세스로 전달하기 전에 검증
  • PSD/PSB 차원 및 레이어 수에 대한 경량 자산 카탈로그 구축
  • 표준 PSD와는 다른 처리가 필요한 PSB (대형 문서) 파일 감지

레이어 작업

  • PsdImage.layers는 문서 순서대로 모든 Layer를 반환합니다; 각 Layer는 name, bounds, opacity, is_visible, 그리고 blend_mode_key를 노출합니다
  • Layer.channel_information은 더 깊은 검사를 위해 채널 메타데이터를 노출합니다
  • Layer.channels_count는 레이어가 가지고 있는 이미지 채널 수를 보고합니다
  • PsdImage.layers 자체를 재할당하여 레이어를 제거하거나 순서를 변경할 수 있습니다

감사 레이어 구조

  • Photoshop을 열지 않고 PSD의 레이어 구조를 감사하기
  • 디자인 검토를 위해 레이어 이름, 가시성 및 블렌드 모드 보고서 생성하기
  • 이전 편집에서 남은 숨김 또는 투명도 0인 레이어 식별하기

기본 레이어 메타데이터 편집

  • Layer.name, Layer.left/top/right/bottom, 및 Layer.blend_mode_key는 직접 설정할 수 있습니다
  • PsdImage.save(file_path)는 수정된 문서를 디스크에 저장합니다
  • PsdImage.load로 저장된 파일을 다시 로드하면 편집이 올바르게 라운드트립됨을 확인할 수 있습니다
  • 위에 나열되지 않은 속성(채널 정보, 마스크 데이터, 블렌딩 범위)은 설정하면 NotSupportedException을 발생시킵니다 — 이 빌드는 전체 재작성은 지원하지 않고 메타데이터 전용 편집만 지원합니다

경량, 스크립트 가능한 편집

  • 자동화된 파일 조직 파이프라인의 일부로 레이어를 프로그래밍 방식으로 이름 바꾸기
  • 디자인 도구 없이 레이어의 경계 상자를 재배치하거나 크기 조정하기
  • 일관성을 위해 다수 파일에 걸쳐 블렌드 모드를 일괄 업데이트하기

채널 및 리소스 데이터 검사

  • Layer.channel_information 은(는) 채널당 메타데이터 컬렉션을 노출합니다
  • Layer.has_mask_data 와 has_blending_ranges_data 은(는) 선택적 섹션이 존재하는지 보고합니다
  • PsdLoadException 와 PsdSaveException 은(는) 명확한 메시지와 함께 로드/저장 오류를 표시합니다
  • 모든 클래스는 컴파일된 확장 모듈 없이 순수 Python 입니다

진단 및 검사

  • 특정 PSD 파일이 로드에 실패하는 원인을 진단하고, 일반 오류 대신 형식화된 예외를 사용합니다
  • 레이어가 마스크 또는 블렌딩 범위 데이터를 가지고 있는지 처리하기 전에 확인합니다
  • 형식 수준 진단을 위해 채널별 메타데이터를 검사합니다

PSD 파일을 로드하고 레이어를 검사하기

PSD 전용 멤버를 위해 Image.load를 사용하여 파일을 로드하고 PsdImage 인스턴스를 가져옵니다.

from aspose_psd_foss.image import Image
with Image.load("test.psd") as image:
    print(f"Width: {image.width}, Channels: {image.channels_count}, Layers: {len(image.layers)}")

레이어 경계 및 블렌드 모드 편집, 저장

레이어 경계와 블렌드 모드는 제자리에서 변경하고 디스크에 다시 저장할 수 있습니다.

from aspose_psd_foss.psdimage import PsdImage
from aspose_psd_foss.layers.blendmode import BlendMode

with PsdImage.load("test.psd") as image:
    image.layers[0].left = 10
    image.layers[0].top = 20
    image.layers[0].right = 40
    image.layers[0].bottom = 60
    image.layers[0].blend_mode_key = BlendMode.MULTIPLY
    image.save("edited.psd")

with PsdImage.load("edited.psd") as reloaded:
    print(f"Bounds: {reloaded.layers[0].bounds}, BlendMode: {reloaded.layers[0].blend_mode_key}")

채널 정보 읽기 (읽기 전용)

채널 정보는 읽을 수 있지만 재할당할 수 없습니다 — 설정을 시도하면 NotSupportedException이 발생합니다.

from aspose_psd_foss.psdimage import PsdImage
with PsdImage.load("test.psd") as image:
    layer = image.layers[0]
    channel_information = layer.channel_information
    print(f"Channel count: {layer.channels_count}, first channel: `NotSupportedException`")
    # layer.channel_information = channel_information  # raises NotSupportedException

자주 묻는 질문

라이선스 모델은 무엇인가요?

Aspose.PSD FOSS for Python은 MIT 라이선스를 따릅니다. MIT 라이선스 조건에 따라 사용, 수정 및 재배포가 가능하며, 상업 제품에도 포함할 수 있습니다.

Aspose.PSD FOSS for Python를 어떻게 설치하나요?

위의 설치 섹션에서 현재 설치 명령을 확인하십시오.

Aspose.PSD FOSS for Python는 어떤 형식을 읽고 쓸 수 있나요?

PSD 및 PSB(Photoshop 대용량 문서) 파일을 로드하고 저장합니다. PNG나 JPEG와 같은 다른 래스터 형식으로 픽셀 데이터를 렌더링하거나 내보내지 않습니다.

주 진입점 클래스는 무엇인가요?

PsdImage (Image의 하위 클래스). PsdImage.load로 문서를 로드한 다음, 해당 문서의 layers 컬렉션과 헤더 속성을 읽습니다.

레이어 메타데이터를 수정할 수 있나요?

예 — Layer는 가시성 및 이름과 같은 여러 속성에 대한 작동하는 setter를 제공하고, PsdImage.layers 자체도 컬렉션을 교체하기 위한 작동하는 setter를 가지고 있습니다. 특정 몇몇 속성(채널 정보, 마스크 데이터, 블렌딩 범위 및 일부 문서 수준 리소스)은 이 FOSS 빌드에서 읽기 전용이며, 설정할 경우 NotSupportedException을 발생시킵니다.

  

지원 및 학습 자료

 한국어