ó
 ‰\c           @   sÐ   d  Z  d d l m Z d d l m Z m Z d d l m Z m Z m	 Z	 m
 Z
 m Z d d l m Z m Z d d l m Z d d l m Z d	 e f d
 „  ƒ  YZ d e
 f d „  ƒ  YZ d e f d „  ƒ  YZ d S(   sV  
Skivi is written/maintained/developed by:

S. Chris Colbert - sccolbert@gmail.com

Skivi is free software and is part of the scikit-image project.

Skivi is governed by the licenses of the scikit-image project.

Please report any bugs to the author.

The skivi module is not meant to be used directly.

Use skimage.io.imshow(img, fancy=True)iÿÿÿÿ(   t   dedent(   t   QtCoret	   QtWidgets(   t   QMainWindowt   QLabelt   QWidgett   QFramet   QGridLayout(   t   QImaget   QPixmapi   (   t
   MixerPanel(   t   QuadHistogramt
   ImageLabelc           B   s,   e  Z d  „  Z d „  Z d „  Z d „  Z RS(   c         C   s®   t  j |  ƒ | |  _ | |  _ t | j | j d | j d | j d t j ƒ |  _	 t
 j |  j	 ƒ |  _ |  j |  j ƒ |  j t j j ƒ |  j d d ƒ |  j t ƒ d  S(   Ni   i    id   (   R   t   __init__t   parentt   arrR   t   datat   shapet   stridest   Format_RGB888t   imgR	   t	   fromImaget   pmt	   setPixmapt   setAlignmentR   t   Qtt   AlignTopt   setMinimumSizet   setMouseTrackingt   True(   t   selfR   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR      s    		c         C   s   |  j  j | ƒ d  S(   N(   R   t   label_mouseMoveEvent(   R   t   evt(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   mouseMoveEvent2   s    c         C   sD   |  j  ƒ  } t j |  j ƒ } | j | ƒ |  _ |  j |  j ƒ d  S(   N(   t   widthR	   R   R   t   scaledToWidthR   R   (   R   R    R"   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   resizeEvent5   s    c         C   s>   |  j  ƒ  } t j |  j ƒ } | j | ƒ } |  j | ƒ d  S(   N(   R"   R	   R   R   R#   R   (   R   R"   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   update_image;   s    (   t   __name__t
   __module__R   R!   R$   R%   (    (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR      s   			t   RGBHSVDisplayc           B   s   e  Z d  „  Z d „  Z RS(   c         C   sŸ  t  j |  ƒ |  j t  j t  j Bƒ t d ƒ |  _ t ƒ  |  _ t d ƒ |  _ t ƒ  |  _	 t d ƒ |  _
 t ƒ  |  _ t d ƒ |  _ t ƒ  |  _ t d ƒ |  _ t ƒ  |  _ t d ƒ |  _ t ƒ  |  _ t d ƒ |  _ t ƒ  |  _ t d ƒ |  _ t ƒ  |  _ t |  ƒ |  _ |  j j |  j d	 d	 ƒ |  j j |  j d	 d
 ƒ |  j j |  j d
 d	 ƒ |  j j |  j	 d
 d
 ƒ |  j j |  j
 d	 d ƒ |  j j |  j d	 d ƒ |  j j |  j d
 d ƒ |  j j |  j d
 d ƒ |  j j |  j d d ƒ |  j j |  j d d ƒ |  j j |  j d	 d ƒ |  j j |  j d	 d ƒ |  j j |  j d
 d ƒ |  j j |  j d
 d ƒ |  j j |  j d d ƒ |  j j |  j d d ƒ d  S(   Ns   X-pos:s   Y-pos:s   R:s   G:s   B:s   H:s   S:s   V:i    i   i   i   i   i   (   R   R   t   setFrameStylet   Boxt   SunkenR   t
   posx_labelt
   posx_valuet
   posy_labelt
   posy_valuet   r_labelt   r_valuet   g_labelt   g_valuet   b_labelt   b_valuet   h_labelt   h_valuet   s_labelt   s_valuet   v_labelt   v_valueR   t   layoutt	   addWidget(   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR   C   sF    c   
      C   sò   | \ } } } } } } } }	 |  j  j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j j t | ƒ d  ƒ |  j	 j t |	 ƒ d  ƒ d  S(   Ni   (
   R-   t   setTextt   strR/   R1   R3   R5   R7   R9   R;   (
   R   R   t   xpost   ypost   rt   gt   bt   ht   st   v(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   update_valsj   s    (   R&   R'   R   RH   (    (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR(   B   s   	't   SkiviImageWindowc           B   sP   e  Z d  „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z d „  Z	 RS(   c         C   s   t  j |  ƒ | |  _ | |  _ t ƒ  |  _ t |  j ƒ |  _ |  j |  j ƒ t	 |  | ƒ |  _
 t ƒ  |  _ |  j j t j t j Bƒ |  j j d ƒ t |  j ƒ |  j _ |  j j j d d d d ƒ |  j j j |  j
 d d ƒ |  j j |  j d d ƒ |  j j |  ƒ |  j j ƒ  |  j d ƒ t |  j ƒ |  _ |  j j |  j d d ƒ |  j j ƒ  |  j j |  j ƒ t |  j ƒ |  _ |  j j |  j d d ƒ |  j j ƒ  t ƒ  |  _ |  j j |  j d d ƒ |  j j ƒ  |  j j d d ƒ |  j j d d ƒ t  j! d ƒ |  _" |  j" j# j$ |  j% ƒ t  j! d ƒ |  _& |  j& j# j$ |  j' ƒ |  j" j ƒ  |  j& j ƒ  |  j j |  j& d d ƒ |  j j |  j" d d ƒ d  S(   Ni   i    s   Skivi - The skimage viewer.i   s   Save to Files   Save to Stack((   R   R   R   t   mgrR   t   main_widgetR   R<   t   setCentralWidgetR   t   labelR   t   label_containert   setFrameShapet   StyledPanelR+   t   setLineWidtht   setContentsMarginsR=   t
   add_windowt   showt   setWindowTitleR
   t   mixer_panelt   set_callbackt   refresh_imageR   t	   rgbv_histR(   t   rgb_hsv_dispt   setColumnStretcht   setRowStretchR   t   QPushButtont	   save_filet   clickedt   connectt   save_to_filet
   save_stackt   save_to_stack(   R   R   RJ   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR   w   sJ    		c         C   s   |  j  j |  ƒ d  S(   N(   RJ   t   remove_window(   R   t   event(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt
   closeEventª   s    c         C   s   |  j  j |  j ƒ d  S(   N(   RY   t   update_histsR   (   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   update_histograms¯   s    c         C   s   |  j  j ƒ  |  j ƒ  d  S(   N(   RM   R%   Rh   (   R   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyRX   ²   s    c   	      C   sŠ   |  j  j j ƒ  } |  j  j j ƒ  } d | | } d | | } |  j j d } |  j j d } t | | ƒ } t | | ƒ } | | f S(   Ng      ð?i   i    (   RM   R   R"   t   heightR   R   t   int(	   R   t   xt   yR"   Ri   t   x_fract   y_fract   new_xt   new_y(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   scale_mouse_pos¶   s    c      	   C   s/  | j  ƒ  } | j ƒ  } |  j | | ƒ \ } } |  j j d } |  j j d } | | k s€ | | k s€ | d k  s€ | d k  r d } } } }	 }
 } nf |  j | | d f } |  j | | d f } |  j | | d f } |  j j j | | | ƒ \ }	 }
 } |  j j	 | | | | | |	 |
 | f ƒ d  S(   Ni   i    t    i   (
   Rk   Rl   Rq   R   R   RV   t   mixert   rgb_2_hsv_pixelRZ   RH   (   R   R    Rk   Rl   t   maxwt   maxhRB   RC   RD   RE   RF   RG   (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyR   Á   s    0$c         C   sÑ   d d l  m } |  j j ƒ  } | j | ƒ t d ƒ } t | ƒ } t j ƒ  } t j	 d | ƒ } | j
 j | j ƒ | j t ƒ t | ƒ | _ | j j | d d d d ƒ | j j | d d ƒ | j ƒ  d  S(   Ni   (   t   iosˆ   
            The image has been pushed to the io stack.
            Use io.pop() to retrieve the most recently
            pushed image.t   OKi    i   (   Rr   Rw   R   t   copyt   pushR    R   R   t   QDialogR]   R_   R`   t   acceptt
   setDefaultR   R   R<   R=   t   exec_(   R   Rw   R   t   msgt   msglabelt   dialogt   ok(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyRc   Ó   s    	c         C   sR   d d l  m } t t j j ƒ  ƒ } t | ƒ d k r; d  S| j | |  j ƒ d  S(   Ni   (   Rw   i    (	   Rr   Rw   R?   R   t   QFileDialogt   getSaveFileNamet   lent   imsaveR   (   R   Rw   t   filename(    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyRa   å   s
    (
   R&   R'   R   Rf   Rh   RX   Rq   R   Rc   Ra   (    (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyRI   v   s   	3						N(   t   __doc__t   textwrapR    t   qtpyR   R   t   qtpy.QtWidgetsR   R   R   R   R   t
   qtpy.QtGuiR   R	   t   q_color_mixerR
   t   q_histogramR   R   R(   RI   (    (    (    s8   lib/python2.7/site-packages/skimage/io/_plugins/skivi.pyt   <module>   s   ((4