Python에서 프레젠테이션 도형 썸네일 만들기

소개

Aspose.Slides for Python via .NET는 각 페이지가 슬라이드인 프레젠테이션 파일을 만들 때 사용됩니다. 프레젠테이션 파일을 열어 Microsoft PowerPoint에서 슬라이드를 볼 수 있습니다. 그러나 개발자가 개별 도형의 이미지를 이미지 뷰어에서 별도로 확인해야 할 때가 있습니다. 이 경우 Aspose.Slides를 사용하면 슬라이드 도형의 썸네일 이미지를 생성할 수 있습니다. 이 문서에서는 해당 기능을 사용하는 방법을 설명합니다.

슬라이드에서 도형 썸네일 생성

전체 슬라이드가 아니라 특정 개체의 미리보기가 필요할 때 개별 도형에 대한 썸네일을 렌더링할 수 있습니다. Aspose.Slides를 사용하면 모든 도형을 이미지로 내보낼 수 있어 가벼운 미리보기, 아이콘 또는 후속 처리용 자산을 쉽게 만들 수 있습니다.

任意の 도형에서 썸네일을 생성하려면:

  1. Presentation 클래스의 인스턴스를 생성합니다.
  2. ID 또는 인덱스로 슬라이드에 대한 참조를 가져옵니다.
  3. 해당 슬라이드에 있는 도형에 대한 참조를 가져옵니다.
  4. 도형의 썸네일 이미지를 렌더링합니다.
  5. 원하는 형식으로 썸네일 이미지를 저장합니다.

아래 예제는 도형 썸네일을 생성합니다.

import aspose.slides as slides

# 프레젠테이션 파일을 열기 위해 Presentation 클래스를 인스턴스화합니다.
with slides.Presentation("hello_world.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]
    
    # 기본 스케일로 이미지를 생성합니다.
    with shape.get_image() as thumbnail:
        # 이미지를 PNG 형식으로 디스크에 저장합니다.
        thumbnail.save("shape_thumbnail.png", slides.ImageFormat.PNG)

사용자 정의 배율을 사용한 썸네일 생성

이 섹션에서는 Aspose.Slides에서 사용자 정의 배율을 적용해 도형 썸네일을 생성하는 방법을 보여줍니다. 배율을 제어하면 미리보기, 내보내기 또는 고 DPI 디스플레이에 맞게 썸네일 크기를 미세 조정할 수 있습니다.

슬라이드의 任意の 도형에 대한 썸네일을 생성하려면:

  1. Presentation 클래스의 인스턴스를 생성합니다.
  2. ID 또는 인덱스로 슬라이드를 가져옵니다.
  3. 해당 슬라이드에서 대상 도형을 가져옵니다.
  4. 지정된 배율로 도형의 썸네일 이미지를 렌더링합니다.
  5. 원하는 형식으로 썸네일 이미지를 저장합니다.

아래 예제는 사용자 정의 배율을 사용해 썸네일을 생성합니다.

import aspose.slides as slides

scale_x = 2.0
scale_y = scale_x

# 프레젠테이션 파일을 열기 위해 Presentation 클래스를 인스턴스화합니다.
with slides.Presentation("hello_world.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]
    
    # 정의된 스케일로 이미지를 생성합니다.
    with shape.get_image(slides.ShapeThumbnailBounds.SHAPE, scale_x, scale_y) as thumbnail:
        # 이미지를 PNG 형식으로 디스크에 저장합니다.
        thumbnail.save("scaling_factor.png", slides.ImageFormat.PNG)

도형 외관 영역을 사용한 썸네일 생성

이 섹션에서는 도형의 외관 영역 내에서 썸네일을 생성하는 방법을 보여줍니다. 모든 도형 효과를 고려합니다. 생성된 썸네일은 슬라이드 경계에 의해 제한됩니다.

도형의 외관 영역 내에서 任意の 슬라이드 도형 썸네일을 생성하려면:

  1. Presentation 클래스의 인스턴스를 생성합니다.
  2. ID 또는 인덱스로 슬라이드를 가져옵니다.
  3. 해당 슬라이드에서 대상 도형을 가져옵니다.
  4. 지정된 경계로 도형의 썸네일 이미지를 렌더링합니다.
  5. 원하는 이미지 형식으로 썸네일을 저장합니다.

아래 예제는 사용자 정의 경계를 사용해 썸네일을 생성합니다.

import aspose.slides as slides

image_bounds = slides.ShapeThumbnailBounds.APPEARANCE

# 프레젠테이션 파일을 열기 위해 Presentation 클래스를 인스턴스화합니다.
with slides.Presentation("hello_world.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]

    # 외관 경계 기반 도형 이미지를 생성합니다.
    with shape.get_image(image_bounds, 1.0, 1.0) as thumbnail:
        # 이미지를 PNG 형식으로 디스크에 저장합니다.
        thumbnail.save("apperance_bounds.png", slides.ImageFormat.PNG)

도형의 실제 시각적 경계 가져오기

Shape의 프레임 속성—Shape.x, Shape.y, Shape.width, Shape.height—은 프레젠테이션 모델에 저장된 사각형을 설명합니다. 실제로 렌더링되는 내용은 그 프레임을 넘어설 수 있거나 다른 축에 정렬된 사각형을 차지할 수 있습니다. 회전, 외곽선, 화살표 머리, 텍스트 레이아웃 및 넘침, 자동 생성된 SmartArt 기하학, 기타 렌더링 효과가 차지하는 영역을 변경할 수 있습니다.

이미지를 만들지 않고 차지하는 영역을 계산하려면 Shape.get_visual_bounds를 사용합니다. 이 메서드는 슬라이드 좌표계의 부동 소수점 사각형을 반환합니다. 반환된 사각형은 슬라이드에 클립되지 않으므로 내용이 슬라이드 원점을 벗어나면 좌표가 음수가 될 수 있습니다.

다음 예제는 프레임 경계와 시각적 경계를 가져와 비교합니다.

import aspose.pydrawing as drawing
import aspose.slides as slides

with slides.Presentation("example.pptx") as presentation:
    slide = presentation.slides[0]
    shape = slide.shapes[0]

    visual_bounds = shape.get_visual_bounds()

    frame_values = (shape.x, shape.y, shape.width, shape.height)
    visual_values = (visual_bounds.x, visual_bounds.y, visual_bounds.width, visual_bounds.height)

    print(f"Frame bounds (x, y, width, height): {frame_values}")
    print(f"Visual bounds (x, y, width, height): {visual_values}")

동일한 사각형을 사용해 주변 도형을 left, right, top, bottom 가장자리에 정렬하거나, 생성된 레이아웃에 충분한 공간을 확보하거나, 허용된 영역 밖의 콘텐츠를 감지할 수 있습니다. 시각적 경계는 저장된 프레임이 전체 렌더링 결과를 나타내지 않을 수 있는 SmartArt, 텍스트 상자, 화살표, 그림, 회전된 도형 및 그룹 도형에 특히 유용합니다.

레이아웃이나 검증을 위한 좌표가 필요하고 비트맵이 필요 없을 때는 Shape.get_visual_bounds를 사용하고, 도형을 렌더링해야 할 때는 Shape.get_image를 사용합니다. 또한 ShapeThumbnailBounds를 사용하면 ShapeThumbnailBounds.SHAPE는 외곽선 설정을 포함해 도형 경계에서 이미지를 크기 조정하고, ShapeThumbnailBounds.APPEARANCE는 도형의 외관을 기준으로 크기 조정하며 결과를 슬라이드 경계에 제한합니다. 반면에 Shape.get_visual_bounds는 계산된 사각형만 반환하고 슬라이드에 클립하지 않습니다.

FAQ

도형 썸네일을 저장할 때 사용할 수 있는 이미지 형식은 무엇인가요?

PNG, JPEG, BMP, GIF, TIFF 및 기타 형식이 지원됩니다. 도형은 SVG 벡터 형식으로 내보내기도 가능합니다.

썸네일을 렌더링할 때 SHAPE와 APPEARANCE 경계의 차이는 무엇인가요?

SHAPE는 도형의 기하학을 사용하고, APPEARANCE시각 효과 (그림자, 광택 등)를 고려합니다.

도형이 숨김으로 표시되면 어떻게 되나요? 여전히 썸네일로 렌더링되나요?

숨김 도형은 모델의 일부로 남아있으며 렌더링될 수 있습니다. 숨김 플래그는 슬라이드 쇼 표시에는 영향을 주지만 도형 이미지를 생성하는 것을 방지하지는 않습니다.

그룹 도형, 차트, SmartArt 및 기타 복합 객체도 지원되나요?

예. Shape로 표현되는 모든 객체(예: GroupShape, Chart, SmartArt)는 썸네일 또는 SVG로 저장할 수 있습니다.

시스템에 설치된 폰트가 텍스트 도형의 썸네일 품질에 영향을 미치나요?

예. 원하지 않는 폰트 대체 및 텍스트 레이아웃 변형을 방지하려면 필요한 폰트를 제공하거나 폰트 대체를 구성해야 합니다.