[python] PDF 파일에서 이미지 유형 축소하기

이미지를 다루는 작업을 할 때 때로는 이미지 유형의 축소가 필요할 수 있습니다. 이번 블로그 포스트에서는 Python을 사용하여 PDF 파일에서 이미지 유형을 축소하는 방법에 대해 알아보겠습니다.

1. 필요한 패키지 설치

먼저, 우리는 PyPDF2 패키지를 사용하여 PDF 파일을 다루고, PIL 패키지를 사용하여 이미지를 변환할 것입니다.

다음 명령어를 사용하여 필요한 패키지를 설치합니다:

pip install PyPDF2
pip install Pillow

2. PDF 파일 열기

먼저, PyPDF2 패키지를 사용하여 PDF 파일을 열어야 합니다. 다음 코드를 사용하여 PDF 파일을 엽니다:

import PyPDF2

with open('example.pdf', 'rb') as file:
    pdf = PyPDF2.PdfFileReader(file)

위 코드에서 example.pdf는 변환할 PDF 파일의 경로입니다.

3. 이미지 추출 및 축소

이제 PDF 파일에서 이미지를 추출하고 유형을 축소하는 작업을 해보겠습니다. 다음 코드를 사용하여 이미지를 추출하고 축소합니다:

from PIL import Image

# PDF 파일의 페이지 수 만큼 반복
for page_num in range(pdf.numPages):
    page = pdf.getPage(page_num)
    for obj in page['/Resources']['/XObject'].keys():
        obj_type = page['/Resources']['/XObject'][obj]['/Subtype']

        # 이미지 타입 확인
        if obj_type == '/Image':
            x_object = page['/Resources']['/XObject'][obj]
            image = Image.frombytes(
                x_object['/ColorSpace'],
                (x_object['/Width'], x_object['/Height']),
                x_object['/Filter'][0].decode(),
                x_object.get_data()
            )

            # 이미지 유형 축소
            resized_image = image.resize((image.width // 2, image.height // 2))

            # 이미지 저장
            resized_image.save(f'resized_{page_num}_{obj}.jpg')

위 코드에서 이미지 유형은 /Image로 확인되며, 해당 이미지를 PILImage 객체로 변환한 후 resize() 메서드를 사용하여 축소합니다. 축소된 이미지는 resized_{페이지 번호}_{객체 이름}.jpg 파일로 저장됩니다.

4. 결과 확인

위 코드를 실행하면 PDF 파일에서 이미지가 추출되고 축소되어 저장됩니다. 해당 파일을 확인하여 이미지가 올바르게 축소되었는지 확인할 수 있습니다.

결론

Python을 사용하여 PDF 파일에서 이미지 유형을 축소하는 방법에 대해 알아보았습니다. PyPDF2PIL 패키지를 사용하여 PDF 파일을 열고 이미지를 추출하고 축소할 수 있습니다. 이를 통해 이미지 유형 축소와 같은 이미지 처리 작업을 효과적으로 수행할 수 있습니다.

참고 문서