U
    ͔`8                  	   @   sB   d dl Z d dlmZ d dlmZ ddddddde  fdd	ZdS )
    N)theqrmodule)Image   HFg      ?c	                    s  dt | tr$tfdd| D r,tdt |trD|tddkrLtdt |trjt|dksj|dkrrtd	|r
t |trtj	|r|d
d  dkrtd|d
d  dkr|r|d
d  dkrtdt |t
stdt |tstdt |ts
td|r6t |tr.|d
d  dkr6tdtj|sLtdd!dd}	tjtjdd}
z"ztj|
st|
 t||| |
\}}|r|d
d  dkrdd l t|}|jdd}|tj|
d z6| }||d  |tj|
d|d   W n tk
r>   Y qDY nX qg }t|d D ]2}tj|
d| }||	|||||||
 qT fdd|D }|stj|tjtj |d d ntj||} j!||dfd|d i n|r|	||||||||}nb|rpt|}|s:tj|tj |ntj||}|"|j#d d  |j#d d  f| |||fW W S     Y nX W 5 dd l}tj|
r||
 X d S )"Nub   0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz ··,.:;+-*/\~!@#$%^&`'=<>[]()?_{}|c                 3   s   | ]}| kV  qd S )N ).0i)supported_charsr   ,/tmp/photos/amazing-qr-master/amzqr/amzqr.py	<genexpr>   s     zrun.<locals>.<genexpr>z4Wrong words! Make sure the characters are supported!r   )   z;Wrong version! Please choose a int-type value from 1 to 40!LMQHzCWrong level! Please choose a str-type level from {'L','M','Q','H'}!)z.jpgz.pngz.bmp.gifzgWrong picture! Input a filename that exists and be tailed with one of {'.jpg', '.png', '.bmp', '.gif'}!r   z_Wrong save_name! If the picuter is .gif format, the output filename should be .gif format, too!z)Wrong colorized! Input a bool-type value!z)Wrong contrast! Input a float-type value!z+Wrong brightness! Input a float-type value!zVWrong save_name! Input a filename tailed with one of {'.jpg', '.png', '.bmp', '.gif'}!z+Wrong save_dir! Input a existing-directory!c              	   S   s\  ddl m} ddlm}	m}
 t|}|r4|dn|}t|d}|	|	|}|	
|	|}|jd |jd k r||jd d |jd d t|jd |jd   f}n:||jd d t|jd |jd   |jd d f}|r|n|d}g }| dkr|| d  }tt|D ]}tt|D ]}||  krVdks:n |t|d krt|dks:|dkr|t|d ks:td	|| d  d	|| d	  D ]>}td	|| d  d	|| d	  D ]}|||f qؐqq:q*t|jd d D ]}t|jd d D ]}|d
ks"|d
ks"|dk rN|dk s"|dk rl||jd d ks"||jd d kr|dk s"||f|ks"|d	 dkr|d	 dks"|||fd	 dks"||d |d f|||f q"q|s"tj|tjtj|d d ntj||}||jd d	 |jd d	 f| |S )Nr   )alig_location)ImageEnhanceImageFilterZRGBAr      1      )         1      z_qrcode.png)Zamzqr.mylibs.constantr   PILr   r   r   openZconvertZContrastZenhanceZ
BrightnesssizeresizeintrangelenappendZgetpixelZputpixelospathjoinsplitextbasenamesave)verqr_namebg_name	colorizedcontrast
brightnesssave_dir	save_namer   r   r   qrZbg0ZbgZaligsZalocabr   jr   r   r
   combine3   s6    
<:
R&&*:(zrun.<locals>.combine~z.myqrr   durationz0.pngz%s.pngc                    s   g | ]}  |qS r   )Zimread)r   Zpic)imageior   r
   
<listcomp>s   s     zrun.<locals>.<listcomp>z_qrcode.gifi  r   )N)$
isinstancestrany
ValueErrorr    r!   r"   r$   r%   isfileboolfloatisdirr&   
expandusershutilexistsZrmtreemakedirsr   Z
get_qrcoder9   r   r   infogetr)   tellseekEOFErrorr#   r'   r(   Zmimwriter   r   )Zwordsversionlevelpicturer-   r.   r/   r1   r0   r6   ZtempdirrD   r*   r+   Zimr8   ZseqZimsnamesr,   Zimsr2   r   )r9   r	   r
   run   st     &$

$
%

 :
*(rP   )r$   Zamzqr.mylibsr   r   r   getcwdrP   r   r   r   r
   <module>   s   