
    hfJ                     ^    d dl mZmZmZmZmZ d dlZd dlmZ d dl	Z	d dl
Z
d dlZd Zd Zd Zy)    )Image	ImageDraw	ImageFontImageOpsExifTagsN)BytesIOc                 X    d| v xr% | j                  dd      d   j                         |v S )N.   )rsplitlower)filenameallowed_extensionss     5/var/www/feuerwehr-webapp/modules/image_processing.pyallowed_filer      s0    (?WxsA6q9??AEWWW    c                    	 t         j                  j                         D ]  }t         j                  |   dk(  s n | j                         }|^|j	                  d      }|dk(  r| j                  dd      } | S |dk(  r| j                  dd      } | S |d	k(  r| j                  d
d      } | S # t        t        t        f$ r Y | S w xY w)NOrientationr         Texpand   i     Z   )	r   TAGSkeysgetexifgetrotateAttributeErrorKeyError
IndexError)imageorientationexifs      r   correct_image_orientationr'      s    #==--/ 	K}}[)]:	 }}((;2KaS6 L !S6
 L	 !R5 L Hj1 Ls"   7B/ ?B/ ;B/ B/ /CCc                 X   t        j                  d       t        | t              r;| j	                  d      r*| j                  d      d   } t        j                  |       } nt        j                  |       } t        j                  t        |             j                  d      }t        |      }|j                  ||ft        j                        }t        j                  ddd      }|j!                  |||f       |}|rd}t        j                  d|j"                  |z  |j$                  |z  fd      }t'        j(                  |      }d	d
|z  fd|z  d|z  fd|z  d|z  fd	d|z  fg}d|z  d|z  fd|z  d|z  fd|z  d|z  fd|z  d|z  fg}|j+                  |d       |j+                  |d       t-        j.                  |d|z        }|j                  |j"                  |j$                  ft        j                        }t        j                  dd|z  d|z  f      }t'        j(                  |      }t1        |      dk  rt-        j.                  |	d|z        }nt-        j.                  |	d|z        }|j3                  d||      }|d    |d	   z
  }|d!   |d   z
  }|j5                  d||d"#       |j7                  d$d%      }|j                  |j"                  |z  |j$                  |z  ft        j                        }d&}d'|v r!t1        |      d(kD  rd)}t1        |      d(k  r&d*}n#t1        |      d(kD  rd)}t1        |      d!k  rd*}nd+}t        j8                         ||d |z  z  z
  }||d |z  z  z
  } |j!                  t;        j<                  |d,d-      || f|       d.}!t        j                  dd|z  d|z  f      }"t'        j(                  |"      }t-        j.                  |	d/|z        }#|j3                  d|!|#      }|d    |d	   z
  }|d!   |d   z
  }|j5                  d|!|#d"#       |"j7                  d$d%      }|j                  |j"                  |z  |j$                  |z  ft        j                        }d0}$d1}%|$|d |z  z  z
  }|%|d |z  z  z
  } |j!                  t;        j<                  |d,d-      || f|       t        j>                  ||      }&n|}&|rt@        jB                  jE                  |
d2      }'t@        jB                  jG                  |'      rWt        j                  |'      j                  d      }(|(j                  d3t        j                        }(|&j!                  |(d4|(       |rJd5})d6}*d7}+d8},t'        j(                  |&      }t-        j.                  |	d9      }#|j5                  |*|+f|)|#d:#       t@        jB                  jE                  |d;      }-|&jI                  |-       t@        jB                  jE                  |
d;      }.tK        jL                  |-|.       |.S )<Nadd_watermarkz
data:image,r   RGBA)8  r,   )   r-   r-   r      r   X  i  i?  iq  i  d   i  i,  iv  i  i  )r-   r   r   r-   )fill)   r   r   r-   Li  2             )r   r   )font   r   r-   )r8   r1      r      _
   ij  i`  ib  )r   r   r   )r-   r-   r-   zEINSATZALARM!-   r2   i=  zwatermark.png)i  r0   )r/   i  
Symbolbild   i  )r   r   r   r      	lightgreyzeinsatzbild.png)'logginginfo
isinstancestr
startswithsplitbase64	b64decoder   openr   convertr'   resizeLANCZOSnewpastewidthheightr   Drawpolygonr   truetypelentextbboxtextr    debugr   colorizealpha_compositeospathjoinexistssaveshutilcopy)/
image_dataeinsatzstichworteinsatzmeldungeinsatzberichtimg_ximg_y	img_width
img_heightfont_Einsatzstichwort_pathfont_Headline_pathstatic_folderupload_folderimagealarmbannerimagewatermarksymbolicimagetagr$   new_basescale_factorhigh_res_polygon_imgdpolygon1polygon2fntpolygon_imgtext_img	text_bboxtext_wtext_hw	special_x	special_yxy
fixed_textfixed_text_imgfnt2special_fixed_xspecial_fixed_ywatermarkedadditional_image_pathadditional_imagesymbolicimagetextsymbolicimagetext_xsymbolicimagetext_ysymbolicimagetext_shadowoutput_pathstatic_output_paths/                                                  r   r)   r)      s[   LL!*c"z'<'<\'J%%c*1-
%%j1
%%j1
JJwz*+33F;E%e,ELL)Z0%--@Eyy/ABHNN55%.)E$yy%++2Lell]iNi1jl~NN/0l*+cL.@#BT-UX[^jXjlor~l~W  CD  FI  LX  FX  BY  Z<'|);<s\?QSVYeSe>filo{i{  ~A  DP  ~P  iQ  TW  Zf  Tf  hk  nz  hz  S{  |			(!1	2			(!1	2  !;R,=NO*115;;2Mu}}]99S3#5rL7H"IJNN8$ B&$$%7l9JKC$$%7l9JKCJJv'7cJB	1	!,1	!,	v'c<OOAaO(HHagg-qxx</GH%--X 	""#$r)	#$*	#$r)	#$)i	i  A$456A$456(++Ay/JQPQFTUV %
3|);R,=N(OPNN>*!!"4b<6GHJJvzJ=	1	!,1	!,	vz37!!!A!.HHagg-qxx</GH%--Xv!l*:;<v!l*:;<(++Ay/JQPQFTUV++E;? "]O L77>>/0$zz*?@HHP/66z5==Q.
<LM ,"$"&'3${+A%%&8"=DFF')<=?PW[bmFn '',,}.?@K[!m5FG
KK/0r   )PILr   r   r   r   r   rI   ior   r\   ra   rC   r   r'   r)    r   r   <module>r      s+    ? ?   	  X&vr   