Aspose.PSD를 사용한 Python에서 스마트 객체 업데이트 및 내보내기
개요
Aspose.PSD를 사용한 Python에서 PSD 파일의 스마트 객체 레이어 업데이트 및 내보내기
PSD 파일의 스마트 객체 레이어를 사용하면 포토샵 디자인 내에서 외부 이미지를 포함하고 조작할 수 있습니다. Aspose.PSD를 사용하면 Python으로 스마트 객체 레이어를 쉽게 업데이트하고 내보낼 수 있어 이미지 편집 및 조작에 강력한 기능을 제공합니다.
이 문서에서는 Aspose.PSD를 사용하여 Python에서 스마트 객체 레이어를 업데이트하고 내보내는 방법에 대해 단계별 안내를 제공합니다.
Shape 레이어는 PSD 이미지 내에서 파괴적이지 않은 방식으로 레이어를 생성하고 조작할 수 있도록 해주는 Aspose.PSD를 위한 중요한 기능입니다.
예시 시나리오 “new_panama-papers-8-trans4.psd"라는 이름의 PSD 파일에 스마트 객체 레이어가 포함되어 있다고 가정해 봅시다. 이미지를 반전시켜 스마트 객체 레이어의 내용을 업데이트하고 수정된 PSD 파일을 내보내고자 합니다.
-
PSD 파일 로드 먼저, Aspose.PSD 라이브러리의 Image.load 메서드를 사용하여 PSD 파일을 로드해야 합니다. 이를 통해 PSD 파일 내의 레이어에 액세스할 수 있습니다.
-
스마트 객체 레이어의 내용 내보내기 스마트 객체 레이어의 내용을 내보내기 위해 SmartObjectLayer 클래스의 export_contents 메서드를 사용할 수 있습니다. 이 메서드는 포함된 이미지를 별도의 파일로 저장할 수 있게 해줍니다.
-
스마트 객체 레이어 조작 다음으로, 스마트 객체 레이어의 내용을 조작해 봅시다. 예를 들어, invert_image 함수를 사용하여 이미지를 반전시킬 수 있습니다.
-
수정된 내용 업데이트 스마트 객체 레이어를 조작한 뒤, 수정된 내용을 반영하기 위해 smart_object_provider 클래스의 update_all_modified_content 메서드를 사용해야 합니다. 이를 통해 변경 사항이 해당 레이어에 적용됩니다.
-
수정된 PSD 파일 저장 마지막으로, save 메서드를 사용하여 수정된 스마트 객체 레이어가 포함된 PSD 파일을 저장할 수 있습니다. PsdOptions를 지정하여 원하는 형식과 옵션을 설정할 수 있습니다.
결론 본 문서에서는 Aspose.PSD를 사용한 Python에서 PSD 파일의 스마트 객체 레이어를 업데이트하고 내보내는 방법을 학습했습니다. 제시된 단계를 따르면 스마트 객체 레이어의 내용을 쉽게 조작하고 내보낼 수 있어 이미지 편집 및 사용자 정의에 다양한 가능성을 제공합니다.
Aspose.PSD는 PSD 파일 작업을 위한 포괄적인 기능과 API를 제공하여 포토샵 디자인과 함께 작업하는 Python 개발자에게 강력한 도구가 됩니다.
Aspose.PSD를 통해 Python에 대해 더 알아보고 기능을 탐색하려면 공식 문서와 API 참조를 참고하십시오.
전체 예시를 확인하세요.
예시
from aspose.psd import Image, RasterImage | |
from aspose.psd.fileformats.psd import PsdImage | |
from aspose.psd.fileformats.psd.layers.smartobjects import SmartObjectLayer | |
from aspose.psd.imageoptions import PsdOptions | |
from aspose.pycore import cast | |
# Just inverts all data of image | |
def invert_image(image): | |
pixels = image.load_argb_32_pixels(image.bounds) | |
for i in range(len(pixels)): | |
pixel = pixels[i] | |
alpha = pixel & 0xff000000 | |
pixels[i] = (~ (pixel & 0x00ffffff)) | alpha | |
image.save_argb_32_pixels(image.bounds, pixels) | |
# Demonstation of API to work woth Smart Object Layers | |
def SmartObjectManipulationTest(): | |
source = "new_panama-papers-8-trans4.psd" | |
export_content_path = "export_content.jpg" | |
output_original = "smart_object_orig.psd" | |
output_updated = "smart_object.psd" | |
with Image.load(source) as image: | |
im = cast(PsdImage, image) | |
im.save(output_original) | |
smartLayer = cast(SmartObjectLayer, im.layers[0]) | |
# How to export content of Smart Object | |
smartLayer.export_contents(export_content_path) | |
# Creating Smart Object as a Copy | |
newLayer = smartLayer.new_smart_object_via_copy() | |
newLayer.is_visible = False | |
newLayer.display_name = "Duplicate" | |
# Get the content of Smart Object for manipulation | |
with smartLayer.load_contents(None) as innerImage: | |
layer = cast(RasterImage, innerImage) | |
invert_image(layer) | |
smartLayer.replace_contents(layer) | |
im.smart_object_provider.update_all_modified_content() | |
psd_options = PsdOptions(im) | |
im.save(output_updated, psd_options) |