📦 wsqstar / SVIkit

📄 processing.cpython-310.pyc · 24 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24o

�ߜgP	�@sNddlmZddlmZddlmZddlmZddlmZGdd�d�Z	dS)	�)�wraps)�futures)�tqdm)�Path)�Imagec@s:eZdZdd�Zdd�Zd
dd�Zdd	d
�Zddd�ZdS)�
ProcessingAPIcCs
||_dS�N)�data)�selfr	�r�@/mnt/f/workspace/GIStudio/SVIkit/SVIkit/src/svikit/processing.py�__init__	s
zProcessingAPI.__init__cszg}t���&����fdd�|jjD�}tt�|��D]	}|�|���qWd�n1s/wY||jj�j<|S)Ncs$g|]}�j�|dfi����qS)�path)�submit)�.0�img��executor�func�kwargsrr�
<listcomp>s�z'ProcessingAPI.apply.<locals>.<listcomp>)	r�ThreadPoolExecutorr	r�as_completed�append�result�	processed�__name__)r
rr�resultsZfutures_list�futurerrr�applys
���zProcessingAPI.applyNcCsdd�}|�|p	|�S)NcSsdSrr)rrrr�default_segmentsz3ProcessingAPI.segmentation.<locals>.default_segment)r)r
�modelr rrr�segmentationszProcessingAPI.segmentation��r$cCs&|j|j|d�}td|jj���|S)u$生成缩略图并返回处理结果)�output_sizeu处理结果: )r�_create_thumbnail�printr	r)r
r%rrrr�create_thumbnailszProcessingAPI.create_thumbnailc
CszJt|���rt|���jdkrtd|���WdSt�|�}|�|�t|�jddt|�j	��}|jj
dd�|�|�t|�t|�|j
d�WStyg}ztd	|�d
|���WYd}~dSd}~wty�}ztd|�d
|���WYd}~dSd}~ww)u生成缩略图的具体实现ru文件不存在或为空: NZthumbsZthumb_T)�exist_ok)Z
original_pathZthumbnail_pathZprocessed_sizeu处理图像时出错: u - 错误信息: u#处理图像时发生未知错误: )r�exists�stat�st_sizer'r�open�	thumbnail�parent�name�mkdir�save�str�size�OSError�	Exception)r
Zimg_pathr%rZ
thumb_path�errrr&%s,


����zProcessingAPI._create_thumbnailr)r#)r�
__module__�__qualname__r
rr"r(r&rrrrrs

rN)
�	functoolsr�
concurrentrr�pathlibr�PILrrrrrr�<module>s