
    iR                         d Z ddlZddlmZ ddlmZmZmZ ddlm	Z	 ddl
mZ  ej                  e      Zdeeef   deeee   f   d	efd
Zy)u   PNG 메타데이터 임베딩 유틸리티.

Pillow의 PngInfo를 사용하여 tEXt 청크에 생성 정보를 기록합니다.
    N)Path)DictOptionalUnion)Image)PngInfo	file_pathmetadatareturnc                 "   t        |       } | j                         r| j                  j                         dk7  rt        j                  d|        y	 t        j                  |       }t               }|j                         D ]#  \  }}|	|j                  |t        |             % |j                  | |       t        j                  d| j                  t        |             y# t         $ r!}t        j                  d| |       Y d}~yd}~ww xY w)	u   PNG 파일에 tEXt 메타데이터를 삽입합니다.

    Args:
        file_path: PNG 파일 경로
        metadata: 키-값 메타데이터 딕셔너리 (None 값은 건너뜀)

    Returns:
        성공 여부
    z.pngu.   PNG metadata skip: not a PNG or missing — %sFN)pnginfoz#PNG metadata embedded: %s (%d keys)Tz(PNG metadata embedding failed for %s: %s)r   existssuffixlowerloggerwarningr   openr   itemsadd_textstrsavedebugnamelen	Exception)r	   r
   imgpng_infokeyvalueexcs          N/Users/manta/Documents/Projects/TheRoad-I1/backend/app/modules/png_metadata.pyembed_png_metadatar"      s     YI!1!1!7!7!9V!CGSjj#9"..*JC !!#s5z2 + 	H-:INNCPXMZ A9cRs   7C$ 	AC$ $	D-D		D)__doc__loggingpathlibr   typingr   r   r   PILr   PIL.PngImagePluginr   	getLogger__name__r   r   boolr"        r!   <module>r.      sf   
   ( (  &			8	$S$Y3%& 
r-   