Metadata-Version: 2.1
Name: pixlib
Version: 1.0.6
Summary: AI image processing toolkit - plain color detection, image validation, URL image download, hash rename, MD5 and random string utilities
Home-page: https://github.com/zhenzi0322-package/pixlib
Author: zhenzi0322
Author-email: zhenzi0322 <82131529@qq.com>
License: MIT
Requires-Python: >=3.8
description-content-type: text/markdown
Description:
 
 <p align="center">
   <h1>pixlib 图像处理工具包</h1>
   <a href="https://pypi.org/project/pixlib/"><img src="https://img.shields.io/pypi/v/pixlib.svg" alt="PyPI version"></a>
   <a href="https://pypi.org/project/pixlib/"><img src="https://img.shields.io/badge/Python-3.8~3.14-3776AB?logo=python&logoColor=white" alt="Python"></a>
   <a href="https://github.com/zhenzi0322-package/pixlib/blob/master/LICENSE"><img src="https://img.shields.io/pypi/l/pixlib.svg" alt="License"></a>
   <a href="https://tool.long920.cn/pixlib"><img src="https://app.readthedocs.org/projects/zhenzi0322-tool/badge/?version=latest" alt="Documentation Status"></a>
 </p>
 
 > 一个轻量级的 Python 图像处理库，专为 AI 图像生成工作流设计。提供纯色图检测、图片有效性校验、透明区域检测、URL 图片下载、MD5 计算、通用 HTTP 请求客户端等实用功能。
 
 ### 主要特性
 
 - **纯色图检测** (`ImageTool.is_plain_gray`) - 通过 7 个维度综合判定图片是否为纯色图，支持 `bytes` / 文件路径 / `URL` 输入
 - **图片有效性校验** (`ImageTool.is_valid_image`) - 检测图片是否损坏或不完整，支持 `bytes` / 文件路径 / `URL` 输入
 - **透明区域检测** (`ImageTool.has_multiple_transparency`) - 检测图片是否包含多个透明区域，支持 `bytes` / 文件路径 / `BytesIO` / `URL` 输入
 - **批量透明区域检测** (`ImageTool.batch_has_multiple_transparency`) - 多线程 + `tqdm` 进度条批量检测目录下所有图片的透明区域
 - **透明/白色边缘裁剪** (`ImageTool.trim_transparent_edges`) - 自动裁剪图片的透明/白色边缘并可选添加 `padding`，支持 `bytes` / 文件路径 / `BytesIO` / `URL` 输入
 - **彩色线条检测** (`ImageTool.has_colored_lines`) - 检测黑色背景上是否仅包含绿色/红色线条，五重过滤（面积占比 + 颜色纯度 + 双色占比 + 稀疏豁免 + 通道比值）排除填充图/多色图/单色文字/干扰色，支持抗锯齿暗绿色识别，支持 `bytes` / 文件路径 / `BytesIO` / `URL` 输入
 - **URL 图片下载** (`ImageTool.get_img_url_io`) - 从 `URL` 获取图片，支持指数退避重试
 - **MD5 计算** (`utils.str_to_md5`) - 支持字符串、`bytes`、文件路径
 - **随机字符串** (`utils.generate_random_lowercase`) - 生成指定长度的随机小写字母
 - **HTTP 请求客户端** (`HttpRequestClient`) - 通用`HTTP`客户端，支持指数退避重试、`GET/POST`快捷方法，内置断开`ConnectionError`重链。
 
 ## 安装
 
 ```bash
 pip install pixlib
 ```
 
 ## 使用示例
 
 ```python
 import pixlib
 
 # 纯色图检测（支持 bytes / 文件路径 / URL）
 is_gray, metrics, msg = pixlib.ImageTool.is_plain_gray(image_bytes)
 is_gray, metrics, msg = pixlib.ImageTool.is_plain_gray("/path/to/image.png")
 is_gray, metrics, msg = pixlib.ImageTool.is_plain_gray("https://example.com/img.png")
 
 # 图片有效性校验（支持 bytes / 文件路径 / URL）
 try:
     pixlib.ImageTool.is_valid_image(image_bytes, task_id="abc123")
 except Exception as e:
     print(e.extra_data)
 
 # 透明区域检测（支持 bytes / 文件路径 / BytesIO / URL）
 has_transparent = pixlib.ImageTool.has_multiple_transparency(image_bytes)
 
 # 批量透明区域检测（多线程 + tqdm 进度条）
 results = pixlib.ImageTool.batch_has_multiple_transparency("./images", max_workers=8)
 for path, has_trans in results.items():
     if has_trans:
         print(f"有透明区域: {path}")
 
 # 裁剪透明/白色边缘（支持 bytes / 文件路径 / BytesIO / URL）
 cropped_bytes = pixlib.ImageTool.trim_transparent_edges(image_bytes, padding=10)
 cropped_bytes = pixlib.ImageTool.trim_transparent_edges("/path/to/image.png", padding=20, output_format="WEBP")
 
 # 彩色线条检测（检测黑色背景上的绿色/红色线条）
 result = pixlib.ImageTool.has_colored_lines("images/lines.jpg")
 print(result)
 # {'has_lines': True, 'has_green': True, 'has_red': True, 'green_ratio': 0.5076, 'red_ratio': 0.4819, ...}
 
 # URL 下载图片
 im_io = pixlib.ImageTool.get_img_url_io("https://example.com/img.png")
 
 # MD5 计算
 pixlib.utils.str_to_md5("hello")
 pixlib.utils.str_to_md5("/path/to/image.png")
 
 # 随机字符串
 pixlib.utils.generate_random_lowercase(10)
 
 # HTTP 请求客户端
 client = pixlib.HttpRequestClient(max_retries=3, base_timeout=300)
 resp = client.get("https://example.com/api/data")
 resp = client.post("https://example.com/api/submit", json={"key": "value"})
 ```
 
Requires-Dist: Pillow>=9.0.0
Requires-Dist: opencv-python
Requires-Dist: numpy
Requires-Dist: requests>=2.20.0
Requires-Dist: excode
