Python에서 psd 파일을 처리할 수 있는 라이브러리 psd-tools 정보
Python에서 PSD 파일을 처리할 수 있는 라이브러리 psd-tools
▶ 공식 문서
https://psd-tools.readthedocs.io/en/latest/
테스트 이미지
이번에는 이곳의 그림을 샘플로 사용할 것이다
Designed by Freepik
▶ 다운로드 주소
https://www.freepik.com/free-psd/restaurant-gift-voucher-template_5903685.htm#page=3&position=11
▶ Photoshop에서 본 도면층 정보
psd-tools 사용
설치
pip install psd-tools numpy scipy
사용 방법
from psd_tools import PSDImage
if __name__ == '__main__':
file_path = '/Users/[uesr_name]/Downloads/restaurant-gift-voucher-template/3074963.psd'
psd = PSDImage.open(file_path)
psd.compose().save('example.png')
for layer in psd:
print(layer)
▼ 출력
▼example.png
Group('Background' size=1772x886)
Group('Design' size=1426x570)
Group('Images' size=1226x1196)
Group('Text' size=1627x443)
Group('Logo' size=386x107)
모든 레이어 액세스하기
descendants () 방법을 사용하면 폴더를 포함한 모든 층에 접근할 수 있습니다for layer in list(psd.descendants()):
print(layer)
Group('Background' size=1772x886)
SolidColorFill('Background' size=1772x886 mask effects)
Group('Design' size=1426x570)
SmartObjectLayer('Brush Stroke' size=1426x413 effects)
ShapeLayer('Rectangle' size=460x80 effects)
Group('Images' size=1226x1196)
SmartObjectLayer('Waffel' size=675x954 effects)
SmartObjectLayer('Food' size=23x27 effects)
SmartObjectLayer('Food' size=23x27 effects)
SmartObjectLayer('Food' size=27x27 effects)
SmartObjectLayer('Tomato Sauce' size=211x208 effects)
SmartObjectLayer('Tomato' size=237x239 effects)
SmartObjectLayer('Orange' size=276x272 effects)
Group('Text' size=1627x443)
TypeLayer('Title' size=506x122)
TypeLayer('20% OFF' size=441x96)
TypeLayer('Voucher ID #56893' size=379x30)
TypeLayer('Web' size=728x27)
TypeLayer('Address')
Group('Logo' size=386x107)
SmartObjectLayer('Place Your Logo Here (Double Click to Edit)' size=386x107)
모든 레이어는 PIL입니다.이미지 및 레이어 이름으로 저장
for layer in list(psd.descendants()):
print("layer_name: ", layer.name)
print("is_group(): ", layer.is_group())
if not layer.is_group():
pil_img = layer.topil()
pil_img.save(layer.name + ".png")
▼ 결과
Reference
이 문제에 관하여(Python에서 psd 파일을 처리할 수 있는 라이브러리 psd-tools 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/k_ikasumipowder/items/5f2a619bfe1f16db644e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
pip install psd-tools numpy scipy
from psd_tools import PSDImage
if __name__ == '__main__':
file_path = '/Users/[uesr_name]/Downloads/restaurant-gift-voucher-template/3074963.psd'
psd = PSDImage.open(file_path)
psd.compose().save('example.png')
for layer in psd:
print(layer)
Group('Background' size=1772x886)
Group('Design' size=1426x570)
Group('Images' size=1226x1196)
Group('Text' size=1627x443)
Group('Logo' size=386x107)
for layer in list(psd.descendants()):
print(layer)
Group('Background' size=1772x886)
SolidColorFill('Background' size=1772x886 mask effects)
Group('Design' size=1426x570)
SmartObjectLayer('Brush Stroke' size=1426x413 effects)
ShapeLayer('Rectangle' size=460x80 effects)
Group('Images' size=1226x1196)
SmartObjectLayer('Waffel' size=675x954 effects)
SmartObjectLayer('Food' size=23x27 effects)
SmartObjectLayer('Food' size=23x27 effects)
SmartObjectLayer('Food' size=27x27 effects)
SmartObjectLayer('Tomato Sauce' size=211x208 effects)
SmartObjectLayer('Tomato' size=237x239 effects)
SmartObjectLayer('Orange' size=276x272 effects)
Group('Text' size=1627x443)
TypeLayer('Title' size=506x122)
TypeLayer('20% OFF' size=441x96)
TypeLayer('Voucher ID #56893' size=379x30)
TypeLayer('Web' size=728x27)
TypeLayer('Address')
Group('Logo' size=386x107)
SmartObjectLayer('Place Your Logo Here (Double Click to Edit)' size=386x107)
for layer in list(psd.descendants()):
print("layer_name: ", layer.name)
print("is_group(): ", layer.is_group())
if not layer.is_group():
pil_img = layer.topil()
pil_img.save(layer.name + ".png")
Reference
이 문제에 관하여(Python에서 psd 파일을 처리할 수 있는 라이브러리 psd-tools 정보), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/k_ikasumipowder/items/5f2a619bfe1f16db644e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)