easy-start-images 0.1.6
一个简单易用的图像处理Python库，提供了在图片上绘制文本和将HTML转换为图像的功能。
Requires Python: >=3.6

# easy_start_images

一个简单易用的图像处理Python库，提供了在图片上绘制文本和将HTML转换为图像的功能。

## 功能特性

- **HTML转图像**：支持将HTML字符串、URL或文件转换为图像
- **文本绘制**：支持在图片上绘制多个文本，自定义位置、字体、颜色等参数
- **自动路径处理**：自动创建输出目录，避免因路径不存在导致的错误
- **简洁API**：提供简洁易用的接口，降低使用复杂度
- **错误处理**：完善的错误处理机制，提高代码健壮性
- **灵活配置**：支持多种自定义配置选项

## 安装方法

### 使用pip安装

```bash
pip install easy-start-images
```

### 源码安装

```bash
# 克隆项目
git clone https://gitee.com/guolei19850528/easy_start_images.git

# 进入项目目录
cd easy_start_images

# 安装依赖
pip install -r requirements.txt

# 安装包
pip install -e .
```

## 快速开始

### HTML转图像 (imgkit模块)

#### 将HTML字符串转换为图像

```python
from easy_start_images import imgkit

# HTML内容
html_string = """
<html>
<head>
    <title>测试HTML</title>
    <style>
        body { font-family: Arial, sans-serif; }
        h1 { color: #333333; }
        p { color: #666666; }
    </style>
</head>
<body>
    <h1>HTML转图像测试</h1>
    <p>这是一个简单的HTML页面，将被转换为图像。</p>
</body>
</html>
"""

# 转换为图像
output_path = "output/html_to_image.png"
result = imgkit.from_string(
    string=html_string,
    output_path=output_path,
    options={
        "format": "png",
        "quality": "100"
    }
)

if result:
    print(f"HTML字符串转换为图像成功，保存路径: {result}")
else:
    print("HTML字符串转换为图像失败")
```

#### 将URL转换为图像

```python
from easy_start_images import imgkit

# 网页URL
url = "https://www.baidu.com"

# 转换为图像
output_path = "output/url_to_image.png"
result = imgkit.from_url(
    url=url,
    output_path=output_path,
    options={
        "format": "png",
        "quality": "100"
    }
)

if result:
    print(f"URL转换为图像成功，保存路径: {result}")
else:
    print("URL转换为图像失败")
```

#### 将HTML文件转换为图像

```python
from easy_start_images import imgkit

# HTML文件路径
html_file = "input/sample.html"

# 转换为图像
output_path = "output/file_to_image.png"
result = imgkit.from_file(
    file=html_file,
    output_path=output_path,
    options={
        "format": "png",
        "quality": "100"
    }
)

if result:
    print(f"HTML文件转换为图像成功，保存路径: {result}")
else:
    print("HTML文件转换为图像失败")
```

### 图片文本绘制 (pillow模块)

```python
from easy_start_images import pillow
from PIL import ImageFont

# 原始图片路径
image_path = "input/sample.png"

# 字体设置
font = ImageFont.truetype("input/fonts/SourceHanSansSC-Normal-2.otf", size=36)

# 绘制文本
texts = [
    {
        "xy": (50, 50),
        "text": "这是第一行文本",
        "font": font,
        "fill": (255, 0, 0)  # 红色
    },
    {
        "xy": (50, 100),
        "text": "这是第二行文本",
        "font": font,
        "fill": (0, 255, 0)  # 绿色
    },
    {
        "xy": (50, 150),
        "text": "这是第三行文本",
        "font": font,
        "fill": (0, 0, 255)  # 蓝色
    }
]

# 保存路径
output_path = "output/image_with_text.png"

# 执行绘制
result = pillow.draw_texts(
    image_file_path=image_path,
    image_file_save_kwargs={"fp": output_path},
    texts=texts
)

if result:
    print(f"图片文本绘制成功，保存路径: {result}")
else:
    print("图片文本绘制失败")
```

## API文档

### imgkit模块

该模块提供了将HTML转换为图像的功能，封装了imgkit库。

#### from_string(**kwargs)

将HTML字符串转换为图像。

- **参数**:
  - `string`: HTML字符串内容（必需）
  - `output_path`: 输出图像文件路径（可选）
  - `css`: CSS样式字符串或文件路径（可选）
  - `options`: 配置选项字典，如格式、质量等（可选）
  
- **返回**:
  - `str or None`: 成功时返回输出图像路径，失败时返回None

#### from_url(**kwargs)

将网页URL转换为图像。

- **参数**:
  - `url`: 网页URL地址（必需）
  - `output_path`: 输出图像文件路径（可选）
  - `css`: CSS样式字符串或文件路径（可选）
  - `options`: 配置选项字典，如格式、质量等（可选）
  
- **返回**:
  - `str or None`: 成功时返回输出图像路径，失败时返回None

#### from_file(**kwargs)

将HTML文件转换为图像。

- **参数**:
  - `file`: HTML文件路径（必需）
  - `output_path`: 输出图像文件路径（可选）
  - `css`: CSS样式字符串或文件路径（可选）
  - `options`: 配置选项字典，如格式、质量等（可选）
  
- **返回**:
  - `str or None`: 成功时返回输出图像路径，失败时返回None

### pillow模块

该模块提供了在图片上绘制文本的功能，基于Pillow库。

#### draw_texts(image_file_path: str = "", image_file_save_kwargs: dict = dict(), texts: list[dict] = [])

在图片上绘制多个文本，并保存结果图片。

- **参数**:
  - `image_file_path`: 原始图片文件路径（必需）
  - `image_file_save_kwargs`: 图片保存参数，包含'fp'键指定保存路径（必需）
  - `texts`: 要绘制的文本列表，每个元素是一个字典，包含绘制参数（可选）
  
- **返回**:
  - `str`: 保存的图片文件路径，如果未指定则为空字符串

## 依赖项

- **imgkit**: 用于将HTML转换为图像
- **Pillow**: 用于图像处理和文本绘制


### 项目结构
```
easy_start_images/
├── easy_start_images/
│   ├── __init__.py
│   ├── imgkit.py
│   ├── pillow.py
├── requirements.txt
```

## 许可证

本项目采用MIT许可证，详见LICENSE文件。

## 作者信息

- **作者**: guolei
- **邮箱**: 174000902@qq.com
- **项目地址**: https://gitee.com/guolei19850528/easy_start_images