52 lines
1.7 KiB
Python
52 lines
1.7 KiB
Python
from PIL import Image, ImageDraw
|
|
from pathlib import Path
|
|
|
|
# 설정
|
|
WIDTH, HEIGHT = 800, 1000
|
|
IMAGE_FILENAME = "test_image.png"
|
|
MASK_FILENAME = "test_mask.png"
|
|
SAVE_DIR = Path(__file__).parent
|
|
|
|
def generate_images():
|
|
"""테스트용 이미지와 마스크를 생성합니다."""
|
|
|
|
# 1. 테스트 이미지 생성 (간단한 그라데이션)
|
|
print(f"'{IMAGE_FILENAME}' 생성 중 ({WIDTH}x{HEIGHT})...")
|
|
image = Image.new("RGB", (WIDTH, HEIGHT))
|
|
draw = ImageDraw.Draw(image)
|
|
|
|
for i in range(HEIGHT):
|
|
r = int(255 * (i / HEIGHT))
|
|
g = int(255 * (1 - i / HEIGHT))
|
|
b = 128
|
|
draw.line([(0, i), (WIDTH, i)], fill=(r, g, b))
|
|
|
|
image_path = SAVE_DIR / IMAGE_FILENAME
|
|
image.save(image_path)
|
|
print(f"✅ 이미지를 성공적으로 저장했습니다: {image_path}")
|
|
|
|
# 2. 마스크 이미지 생성 (중앙에 20% 크기의 사각형)
|
|
print(f"'{MASK_FILENAME}' 생성 중 ({WIDTH}x{HEIGHT})...")
|
|
mask = Image.new("L", (WIDTH, HEIGHT), 0) # 검은색 배경
|
|
draw = ImageDraw.Draw(mask)
|
|
|
|
# 중앙에 약 20% 크기의 흰색 사각형 그리기
|
|
mask_width = int(WIDTH * 0.45) # 800 * 0.45 = 360
|
|
mask_height = int(HEIGHT * 0.45) # 1000 * 0.45 = 450
|
|
# 360 * 450 = 162,000. Total 800,000. 162000/800000 = 0.2025 (약 20%)
|
|
|
|
x1 = (WIDTH - mask_width) // 2
|
|
y1 = (HEIGHT - mask_height) // 2
|
|
x2 = x1 + mask_width
|
|
y2 = y1 + mask_height
|
|
|
|
draw.rectangle([x1, y1, x2, y2], fill=255) # 흰색
|
|
|
|
mask_path = SAVE_DIR / MASK_FILENAME
|
|
mask.save(mask_path)
|
|
print(f"✅ 마스크를 성공적으로 저장했습니다: {mask_path}")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
generate_images()
|