파이썬 – 투명한 배경을 가진 이미지를 PDF로 저장하기

import img2pdf

from PIL import Image
im = Image.open("../Resources/tmp/trans.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im,im)
bg.save("../Resources/tmp/trans.jpg")

with open('../Resources/tmp/trans.pdf', "wb") as ff:
    ff.write(img2pdf.convert('../Resources/tmp/trans.jpg'))

투명한 배경을 가진 이미지를 img2pdf를 이용해서 pdf로 저장하는 루틴이다. 여기서 trans.png 파일은 alpha channel을 가지고 있어 배경이 투명하다. 이 파일을 img2pdf를 이용해서 pdf로 저장을 하려고 하면 에러가 발생을 하기 때문에 alpha channel을 없애고 투명 대신 흰색으로 칠해서 jpg로 변환을 한다. 변환된 jpg 파일을 이용해서 img2pdf로 pdf 변환을 한다. 

 

흰색 배경을 가진 동일한 크기의 이미지를 생성하고 흰색 이미지에 투명한 배경이 있는 이미지를 paste하여 alpha channel을 없앤다. 포토샵에서 두 개의 레이어를 합하는 것과 같은 Scheme이라고 생각하면 이해가 쉽겠다.

댓글 달기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

위로 스크롤