Sindbad~EG File Manager
�
&ٜg�. � � � d dl mZ d dlZd dlmZ d dlmZmZ ddlm Z m
Z
ddlmZ G d� d � Z
dd
�Zdd�Zdd�Zdd
�Zdd�Zdd�Zdd�Zeeeeeeed�Zi f dd�Zi f dd�Zi f dd�Zy)� )�annotationsN)�CodeType)�Any�Callable� )�Image�_imagingmath)� deprecatec �8 � e Zd ZdZd%d�Zd&d�Z d' d(d�Zd)d�Zd*d�Zd*d�Z d*d �Z
d+d
�Zd+d�Zd+d�Z
d+d
�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd*d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Zd+d�Z d+d �Z!d+d!�Z"d+d"�Z#d+d#�Z$d+d$�Z%y),�_Operandz4Wraps an image operand, providing standard operatorsc � � || _ y �N)�im)�selfr s �8/usr/local/lib/python3.12/site-packages/PIL/ImageMath.py�__init__z_Operand.__init__ s � ���� c � � t |t � r{|j j dv r|j j d� S |j j dv r|j S d|j j � �}t |� �t |t t f� rC| j j dv r+t j d| j j |� S t j d| j j |� S )N)�1�L�I)r �Fzunsupported mode: )r r r r )�
isinstancer r �mode�convert�
ValueError�int�floatr �new�size)r �im1�msgs r �__fixupz_Operand.__fixup! s� � ��c�8�$��v�v�{�{�j�(��v�v�~�~�c�*�*������
�*��v�v�
�*�3�6�6�;�;�-�8�� ��o�%� �#��U�|�,�������1P��y�y��d�g�g�l�l�C�8�8��y�y��d�g�g�l�l�C�8�8r Nc �0 � | j |� }|��t j |xs |j |j d � } t t |� d|j � �� }t
j ||j � |j � � t |� S | j |� } |j | j k7 r@|j dk7 r|j d� }| j dk7 r| j d� } |j | j k7 r�t |j d | j d � t |j d | j d � f}
|j |
k7 r|j d|
z � }| j |
k7 r| j d|
z � } t j |xs |j |j d � } t t |� d|j � �� }t
j ||j � |j � | j � � t |� S # t $ r}d|� d�}t |� |�d }~ww xY w# t $ r}d|� d�}t |� |�d }~ww xY w)N�_zbad operand type for '�'r r r )r r )�_Operand__fixupr r r r �getattrr �AttributeError� TypeError�unop�getimr �min�crop�binopr )r �opr! �im2r �im_1�out�er"