반응형
배경을 제거(누끼작업)하고 1080x1080 사이즈로 이미지를 저장하는 방법 (파이썬)
이미지의 배경을 제거(누끼작업)하고, 깔끔한 1080x1080 사이즈로 맞춰서 저장하는 것은 많은 디자이너와 개발자들이 자주 맞닥뜨리는 과제입니다. 특히 파이썬을 이용해 자동으로 이 작업을 처리하면 시간을 크게 절약할 수 있습니다. 여기서는 파이썬의 rembg
와 PIL
라이브러리를 이용해, 배경 제거(누끼작업)와 정사각형 리사이징을 동시에 처리하는 방법을 소개합니다.
1. 라이브러리 설치
먼저, 필요한 라이브러리를 설치합니다:
pip install rembg pillow
2. 배경 제거(누끼작업) 및 1080x1080 이미지 저장 코드
아래 코드를 사용하여 이미지를 배경 제거한 후, 투명한 배경을 가진 1080x1080 크기의 이미지로 저장할 수 있습니다:
import os
from rembg import remove
from PIL import Image, UnidentifiedImageError
from io import BytesIO
def resize_and_center_image(image, target_size=(1080, 1080)):
# 비율 유지하며 리사이즈하고, 빈 공간은 투명하게
image.thumbnail(target_size, Image.LANCZOS)
new_image = Image.new("RGBA", target_size, (0, 0, 0, 0)) # 투명 배경
paste_position = (
(target_size[0] - image.size[0]) // 2,
(target_size[1] - image.size[1]) // 2
)
new_image.paste(image, paste_position)
return new_image
def process_image(image_file, input_folder, output_folder):
input_path = os.path.join(input_folder, image_file)
output_path = os.path.join(output_folder, os.path.splitext(image_file)[0] + '.png')
try:
with Image.open(input_path) as img:
img = img.convert("RGBA")
img_byte_arr = BytesIO()
img.save(img_byte_arr, format='PNG')
img_byte_arr = img_byte_arr.getvalue()
output_image_data = remove(img_byte_arr)
output_image = Image.open(BytesIO(output_image_data)).convert("RGBA")
resized_image = resize_and_center_image(output_image)
resized_image.save(output_path, format='PNG')
print(f"Processed: {image_file}")
except UnidentifiedImageError:
print(f"Skipping non-image file: {image_file}")
except Exception as e:
print(f"Error processing {image_file}: {e}")
3. 작동 방식
remove
: 이미지의 배경을 자동으로 제거합니다.resize_and_center_image
: 이미지의 크기를 1080x1080으로 맞추고, 투명 배경을 가진 새로운 이미지를 생성하여 중앙에 배치합니다.- 최종 출력: 결과 이미지는 1080x1080 사이즈의 PNG 파일로 저장됩니다.
4. 유용한 활용 예
이 코드는 제품 사진이나 프로필 사진을 일괄적으로 처리해야 할 때 매우 유용합니다. 배경이 제거(누끼작업)된 이미지를 통일된 크기로 저장하여, 쇼핑몰 사이트나 소셜 미디어 프로필 등에서 사용할 수 있습니다.
이 코드를 사용해 자동으로 배경 제거(누끼작업)와 정사각형 리사이징을 동시에 처리해 보세요. 시간이 절약되고, 결과물도 일관성 있게 관리할 수 있습니다.
반응형