[python] PDF 파일에서 이미지 유형 복사하기

PDF 파일에는 문서에 포함된 이미지를 포함할 수 있습니다. 이러한 이미지를 파이썬을 사용하여 추출하고, 이미지의 유형을 복사하는 방법에 대해 알아보겠습니다.

라이브러리 설치

먼저, pdf2image 라이브러리를 설치해야 합니다. 이 라이브러리는 PDF 파일에서 이미지를 추출할 수 있는 기능을 제공합니다.

pip install pdf2image

또한, Pillow 라이브러리도 설치해야 합니다. 이 라이브러리는 이미지 처리를 위한 다양한 기능을 제공합니다.

pip install pillow

이미지 추출하기

다음으로, PDF 파일에서 이미지를 추출하는 코드를 작성해보겠습니다. 아래 코드에서는 pdf2image 라이브러리를 사용하여 PDF 파일의 각 페이지에서 이미지를 추출합니다.

from pdf2image import convert_from_path

def extract_images_from_pdf(pdf_path):
    images = convert_from_path(pdf_path)

    for i, image in enumerate(images):
        image.save(f'image_{i}.png', 'PNG')

위의 코드에서 extract_images_from_pdf 함수는 PDF 파일의 경로를 인자로 받고, convert_from_path 함수를 사용하여 이미지를 추출합니다. 추출된 이미지는 image_{index}.png 형식의 파일명으로 저장됩니다.

이미지 유형 복사하기

이제 이미지 유형을 복사하는 코드를 작성해보겠습니다. 아래 코드는 추출한 이미지의 유형을 복사하는 기능을 제공합니다.

from PIL import Image

def copy_image_format(image_path, target_path):
    image = Image.open(image_path)
    target_image = Image.new(image.mode, image.size)
    target_image.save(target_path)

위의 코드에서 copy_image_format 함수는 이미지의 경로와 복사할 타깃 경로를 인자로 받습니다. Image 모듈의 open 함수를 사용하여 이미지를 열고, new 메서드를 사용하여 같은 크기와 유형의 이미지를 생성합니다. 생성된 이미지는 타깃 경로로 저장됩니다.

예제 사용법

이제 위에서 작성한 함수들을 사용하여 PDF 파일에서 이미지 유형을 복사하는 예제를 보겠습니다.

pdf_path = 'document.pdf'

# 이미지 추출
extract_images_from_pdf(pdf_path)

# 이미지 유형 복사
for i in range(10):
    image_path = f'image_{i}.png'
    target_path = f'copy_{i}.png'
    copy_image_format(image_path, target_path)

위의 예제에서는 document.pdf라는 PDF 파일에서 이미지를 추출하고, 각 이미지의 유형을 복사하여 copy_{index}.png 형식의 파일로 저장합니다.

결론

이상으로 PDF 파일에서 이미지를 추출하고, 이미지의 유형을 복사하는 방법에 대해 알아보았습니다. pdf2image와 Pillow 라이브러리를 통해 파이썬에서 이를 구현할 수 있으며, 필요에 따라 추가적인 기능을 구현할 수도 있습니다.