반응형
파이썬으로 투명 배경의 이미지로 만드는 방법
아래 코드에서 pixel 배열에 R,G,B 값이 들어있으므로 원하는 컬러를 투명하게 처리할 수 있다.
색깔 범위를 +- 5~10정도 주면 좀 더 배경을 잘 제거 할 수 도 있을 것이다.
from PIL import Image
# 이미지 파일 열기
image = Image.open("image.png")
# 새로운 alpha channel 생성
alpha_data = []
for pixel in image.getdata():
if pixel[0] == 255 \
and pixel[1] == 255 \
and pixel[2] == 255:
alpha_data.append(0)
else: # 그 외의 경우 alpha 값을 255로 설정
alpha_data.append(255)
alpha_channel = Image.new("L", image.size)
alpha_channel.putdata(alpha_data)
# alpha channel을 이용하여 이미지의 배경을 투명하게 만듦
new_image = image.convert("RGBA")
new_image.putalpha(alpha_channel)
# 이미지 파일 저장
new_image.save("transparent_image.png")
색상 범위를 쉽게 주려면? 아래 코드 참고
# 색상 범위 설정
lower_color = (245, 245, 245) # 검색할 색상 범위의 최소값
upper_color = (255, 255, 255) # 검색할 색상 범위의 최대값
if lower_color <= pixel <= upper_color:
alpha_data.append(0)
else: # 그 외의 경우 alpha 값을 255로 설정
alpha_data.append(255)
'Python' 카테고리의 다른 글
Drawing Plot, 투명 이미지 datauri 생성 (0) | 2023.03.20 |
---|---|
set에 set 추가? frozenset (1) | 2021.02.24 |
Jupyter Notebook 소스 복구 (0) | 2020.06.16 |
Docker python venv 패키지 유지 (0) | 2020.06.07 |
딕셔너리에서 키삭제 (0) | 2019.12.07 |