""" 로고 다크 배경용 버전 생성 - 글자 픽셀 (어두운 색상) → 흰색 - 로고 마크 (파랑/회색 기하학적 도형) → 유지 """ from PIL import Image import numpy as np src = Image.open(r'C:\GUARDiA\logo\지오정보기술로고.png').convert('RGBA') arr = np.array(src, dtype=np.float32) R, G, B, A = arr[:,:,0], arr[:,:,1], arr[:,:,2], arr[:,:,3] # 글자 픽셀 조건: # 1. 불투명(alpha > 30) # 2. 어두운 색 (밝기 < 120) # 3. 채도가 낮음 (R≈G≈B) → 검정/회색계열 # 4. OR 진한 네이비/다크블루 (B > R, G 이지만 전체 어두움) luminance = (R * 0.299 + G * 0.587 + B * 0.114) # 조건: 알파 > 30이고 밝기 < 100인 픽셀 → 글자로 판단 is_text = (A > 30) & (luminance < 100) # 추가: 진한 파란 글자 (ZIO INFOTECH - 어두운 파랑) # R<80, G<80, B<180 이면서 B가 R, G보다 높은 경우 is_dark_blue_text = (A > 30) & (R < 80) & (G < 80) & (B < 180) mask = is_text | is_dark_blue_text # 글자 픽셀을 흰색으로 result = arr.copy() result[mask, 0] = 255 # R result[mask, 1] = 255 # G result[mask, 2] = 255 # B # Alpha는 유지 out = Image.fromarray(result.astype(np.uint8), 'RGBA') # 저장 out_path = r'C:\GUARDiA\workspace\zioinfo-web\frontend\public\zioinfo-logo-dark.png' out.save(out_path, 'PNG') print(f'저장: {out_path}') # 미리보기 썸네일 thumb = out.copy() thumb.thumbnail((400, 400)) # 다크 배경에서 확인용 (배경 합성) bg = Image.new('RGBA', thumb.size, (26, 26, 46, 255)) bg.paste(thumb, mask=thumb.split()[3]) bg.save(r'C:\GUARDiA\logo\logo_dark_preview.png') print('미리보기 저장: logo_dark_preview.png') print(f'변환된 픽셀 수: {mask.sum():,}개')