mò
T¸Ì@c           @   s  d  d „ Z  d  d „ Z d „  Z d „  Z h  d d d e f <d d	 d
 e f <d d d e f <d d d e f <d d d e f <d d d e f <d d d e f <d d d e f <d d d e f <d  d! d" e f <d# d$ d% e f <d& d' d( e f <d) d* d+ e f <d, d- d. e f <d/ d0 d1 e f <d2 d3 d4 e f <d5 d6 d7 e f <d8 d9 d: e f <d; d< d= e f <d> d? d@ e f <dA dB dC e f <dD dE dF e f <dG dH dI e f <dJ dK dL e f <dM dN dO e f <dP dQ dR e f <dS dT dU e f <dV dW dX e f <dY dZ d[ e f <d\ d] d^ e f <d_ d` da e f <db dc dd e f <de df dg e f <dh di dj e f <dk dl dm e f <dn do dp e f <dq dr ds e f <dt du dv e f <dw dx dy e f <dz d{ d| e f <d} d~ d e f <d€ d d‚ e f <dƒ d„ d… e f <d† d‡ dˆ e f <d‰ dŠ d‹ e f <dŒ d dŽ e f <d d d‘ e f <d’ d“ d” e f <d• d– d— e f <d˜ d™ dš e f <d› dœ d e f <dž dŸ d  e f <d¡ d¢ d£ e f <d¤ d¥ d¦ e f <d§ d¨ d© e f <dª d« d¬ e f <d­ d® d¯ e f <d° d± d² e f <d³ d´ dµ e f <d¶ d· d¸ e f <d¹ dº d» e f <d¼ d½ d¾ e f <d¿ dÀ dÁ e f <Z dÂ f  dÃ „  ƒ  YZ e dÄ j o@ dÅ Z e	 e dÆ ƒ Z
 e e
 ƒ Z e i ƒ  Z e
 i ƒ  e GHn dÇ S(È   i    c         C   s$   t  |  | d ƒ t  |  | ƒ d >S(   Ni   i   (   t   ordt   ct   o(   R   R   (    (    t?   /home2/kennisonb/webapps/zope/Zope/Products/Photo/JpgComment.pyt   i16   s    c         C   sP   t  |  | d ƒ t  |  | d ƒ d >t  |  | d ƒ d >t  |  | ƒ d >S(   Ni   i   i   i   i   i   (   R    R   R   (   R   R   (    (    R   t   i32!   s    c         C   s*   |  i i t |  i i d ƒ ƒ d ƒ d  S(   Ni   (   t   selft   fpt   readR   (   R   t   marker(    (    R   t   Skip&   s    c         C   s5   |  i i t |  i i d ƒ ƒ d ƒ } | |  _ d  S(   Ni   (   R   R   R   R   t   st   COM(   R   R	   R   (    (    R   R   )   s    (iÀÿ  t   SOF0s   Baseline DCTiÁÿ  t   SOF1s   Extended Sequential DCTiÂÿ  t   SOF2s   Progressive DCTiÃÿ  t   SOF3s   Spatial losslessiÄÿ  t   DHTs   Define Huffman tableiÅÿ  t   SOF5s   Differential sequential DCTiÆÿ  t   SOF6s   Differential progressive DCTiÇÿ  t   SOF7s   Differential spatialiÈÿ  t   JPGt	   ExtensioniÉÿ  t   SOF9s   Extended sequential DCT (AC)iÊÿ  t   SOF10s   Progressive DCT (AC)iËÿ  t   SOF11s   Spatial lossless DCT (AC)iÌÿ  t   DACs%   Define arithmetic coding conditioningiÍÿ  t   SOF13s    Differential sequential DCT (AC)iÎÿ  t   SOF14s!   Differential progressive DCT (AC)iÏÿ  t   SOF15s   Differential spatial (AC)iÐÿ  t   RST0s	   Restart 0iÑÿ  t   RST1s	   Restart 1iÒÿ  t   RST2s	   Restart 2iÓÿ  t   RST3s	   Restart 3iÔÿ  t   RST4s	   Restart 4iÕÿ  t   RST5s	   Restart 5iÖÿ  t   RST6s	   Restart 6i×ÿ  t   RST7s	   Restart 7iØÿ  t   SOIs   Start of imageiÙÿ  t   EOIs   End of imageiÚÿ  t   SOSs   Start of scaniÛÿ  t   DQTs   Define quantization tableiÜÿ  t   DNLs   Define number of linesiÝÿ  t   DRIs   Define restart intervaliÞÿ  t   DHPs   Define hierarchical progressionißÿ  t   EXPs   Expand reference componentiàÿ  t   APP0s   Application segment 0iáÿ  t   APP1s   Application segment 1iâÿ  t   APP2s   Application segment 2iãÿ  t   APP3s   Application segment 3iäÿ  t   APP4s   Application segment 4iåÿ  t   APP5s   Application segment 5iæÿ  t   APP6s   Application segment 6içÿ  t   APP7s   Application segment 7ièÿ  t   APP8s   Application segment 8iéÿ  t   APP9s   Application segment 9iêÿ  t   APP10s   Application segment 10iëÿ  t   APP11s   Application segment 11iìÿ  t   APP12s   Application segment 12iíÿ  t   APP13s   Application segment 13iîÿ  t   APP14s   Application segment 14iïÿ  t   APP15s   Application segment 15iðÿ  t   JPG0s   Extension 0iñÿ  t   JPG1s   Extension 1iòÿ  t   JPG2s   Extension 2ióÿ  t   JPG3s   Extension 3iôÿ  t   JPG4s   Extension 4iõÿ  t   JPG5s   Extension 5iöÿ  t   JPG6s   Extension 6i÷ÿ  t   JPG7s   Extension 7iøÿ  t   JPG8s   Extension 8iùÿ  t   JPG9s   Extension 9iúÿ  t   JPG10s   Extension 10iûÿ  t   JPG11s   Extension 11iüÿ  t   JPG12s   Extension 12iýÿ  t   JPG13s   Extension 13iþÿ  R   t   Commentt   DummyJpegImageFilec           B   s    t  Z d  Z d „  Z d „  Z RS(   s0   This class is for getting the JPEG comment only.c         C   s   | |  _ d |  _ d  S(   Nt    (   t   fileR   R   R   (   R   RO   (    (    R   t   __init__v   s    	c         C   s  |  i i d ƒ |  i i d ƒ } t | d ƒ d j o t d ƒ ‚ n x³ | |  i i d ƒ } t | ƒ } t	 i
 | ƒ oY t	 | \ } } } | d	 j	 o | |  | ƒ n | d j o Pn |  i i d ƒ } qL | d j o
 d } qL t d ƒ ‚ qL W|  i S(
   s    Skip all markers except COM i    i   iÿ   s   not a JPEG fileiÚÿ  iÿÿ  s   ÿs   no marker foundN(   R   R   t   seekR   R   R    t   AttributeErrorR   t   it   MARKERt   has_keyt   namet   descriptiont   handlert   Nonet   SyntaxErrorR   (   R   RV   RS   R   RX   RW   (    (    R   t   getCOMz   s(       
(   t   __name__t
   __module__t   __doc__RP   R[   (    (    (    R   RM   t   s    	t   __main__s   AlbumEXIF.pyt   rbN(   R   R   R
   R   RY   RT   RM   R\   t   fnamet   opent   infilet   dummyR[   t   commentt   close(
   Re   Rd   R   R   Ra   R
   RT   RM   R   Rc   (    (    R   t   ?   s    			ÿ ÿ ÿ ÿ xB!
