Jpeg2KImagePlugin.pyc
1 o 2 Y��c�* � @ s� d dl Z d dlZd dlZddlmZmZ G dd� d�Zdd� Zdd � Zd 3 d� Z G dd � d ej�Z 4 dd� Zdd� Ze� e 5 je 6 e� e�e 7 je� e�e 8 jg d�� e�e 9 jd� dS )� N� )�Image� ImageFilec @ sJ e Zd ZdZddd�Zdd� Zdd� Zd d 10 � Zdd� Zd d� Z dd� Z 11 dS )� BoxReaderz} 12 A small helper class to read fields stored in JPEG2000 header boxes 13 and to easily step into and read sub-boxes. 14 �����c C s || _ |dk| _|| _d| _d S )Nr r )�fp� 15 has_length�length�remaining_in_box)�selfr r � r ��C:\Users\Jacks.GUTTSPC\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\LocalCache\local-packages\Python310\site-packages\PIL\Jpeg2KImagePlugin.py�__init__ s 16 17 zBoxReader.__init__c C s6 | j r| j�� | | jkrdS | jdkr|| jkS dS )NFr T)r r �tellr r 18 )r � num_bytesr r r � _can_read# s 19 20 21 zBoxReader._can_readc C sh | � |�sd}t|��| j�|�}t|�|k r&d|� dt|�� d�}t|��| jdkr2| j|8 _|S )NzNot enough data in headerzExpected to read z bytes but only got �.r )r �SyntaxErrorr �read�len�OSErrorr 22 )r r �msg�datar r r �_read_bytes- s 23 24 zBoxReader._read_bytesc C s t �|�}| �|�}t �||�S �N)�struct�calcsizer �unpack)r Zfield_format�sizer r r r �read_fields; s 25 26 zBoxReader.read_fieldsc C s | j }| �|�}tt�|�|�S r )r 27 r r �io�BytesIO)r r r r r r � 28 read_boxes@ s 29 zBoxReader.read_boxesc C s | j r| j�� | j | jk S dS )NT)r r r r 30 r �r r r r �has_next_boxE s zBoxReader.has_next_boxc C s� | j dkr| j�| j tj� d| _ | �d�\}}|dkr&| �d�d }d}nd}||k s3| �|| �s9d}t|��|| | _ |S ) Nr r z>I4sr z>Q� � zInvalid header length)r 31 r �seek�os�SEEK_CURr r r )r Zlbox�tbox�hlenr r r r � next_box_typeK s 32 33 zBoxReader.next_box_typeN)r )�__name__� 34 __module__�__qualname__�__doc__r r r r r"