ai-builder-photo


Nameai-builder-photo JSON
Version 1.0.0 PyPI version JSON
download
home_pagehttps://github.com/yourusername/ai-builder-photo
SummaryAI Builder Photo - генератор изображений диалогов в стиле мессенджера
upload_time2025-09-06 20:21:43
maintainerNone
docs_urlNone
authorhokemka
requires_python>=3.7
licenseNone
keywords ai builder photo chat screenshot generator messenger image
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AI Builder Photo

AI Builder Photo - модуль для генерации скриншотов чата в стиле мессенджера. Идеально подходит для создания PNG изображений диалогов для презентаций и демонстраций.

## Установка

```bash
pip install Pillow
```

## Быстрый старт

```python
from ai_builder_photo import create_chat_screenshot

# Простой диалог
dialog = """-Привет
-Привет! Как дела?
-Хорошо, а у тебя?
-Тоже отлично!"""

# Создание скриншота
file_path = create_chat_screenshot(dialog, "chat.png")
print(f"Скриншот создан: {file_path}")
```

## Расширенное использование

```python
from ai_builder_photo import ChatScreenshotGenerator

# Кастомный генератор
generator = ChatScreenshotGenerator(
    width=450,
    background_color="#1C1C1E"  # Темная тема
)

# Изменение цветов
generator.user_color = "#0A84FF"
generator.bot_color = "#2C2C2E"
generator.user_text_color = "#FFFFFF"
generator.bot_text_color = "#FFFFFF"

# Создание скриншота
file_path = generator.generate_from_dialog_string(dialog, "dark_chat.png")
```

## Программное создание сообщений

```python
messages = [
    ("Привет! Как дела?", True),  # True = пользователь
    ("Привет! Все отлично!", False),  # False = бот
    ("Отлично!", True),
]

file_path = generator.generate_chat_screenshot(messages, "chat.png")
```

## Формат диалога

Диалог передается в виде строки, где каждая строка начинается с `-`:

```
-Первое сообщение (пользователь)
-Второе сообщение (бот)
-Третье сообщение (пользователь)
-Четвертое сообщение (бот)
```

Четные позиции (0, 2, 4...) = сообщения пользователя (справа, синие)
Нечетные позиции (1, 3, 5...) = сообщения бота (слева, серые)

## API

### `create_chat_screenshot(dialog_string, save_path, width=400)`

Быстрая функция для создания скриншота.

**Параметры:**
- `dialog_string` - строка диалога
- `save_path` - путь для сохранения PNG файла
- `width` - ширина изображения

**Возвращает:** Путь к созданному файлу

### `ChatScreenshotGenerator`

Основной класс для генерации скриншотов.

**Методы:**
- `generate_from_dialog_string(dialog_string, save_path)` - из строки диалога
- `generate_chat_screenshot(messages, save_path)` - из списка сообщений

## Примеры

Запустите `python example.py` для демонстрации всех возможностей модуля.

## Особенности

- ✅ Автоматический перенос длинных сообщений
- ✅ Поддержка темной и светлой темы  
- ✅ Простое сохранение в PNG файлы
- ✅ Кастомизация цветов и размеров
- ✅ Поддержка русского языка
- ✅ Стиль современных мессенджеров

## Лицензия

MIT License

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/yourusername/ai-builder-photo",
    "name": "ai-builder-photo",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "ai, builder, photo, chat, screenshot, generator, messenger, image",
    "author": "hokemka",
    "author_email": "your.email@example.com",
    "download_url": null,
    "platform": null,
    "description": "# AI Builder Photo\r\n\r\nAI Builder Photo - \u043c\u043e\u0434\u0443\u043b\u044c \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432 \u0447\u0430\u0442\u0430 \u0432 \u0441\u0442\u0438\u043b\u0435 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430. \u0418\u0434\u0435\u0430\u043b\u044c\u043d\u043e \u043f\u043e\u0434\u0445\u043e\u0434\u0438\u0442 \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f PNG \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u0434\u043b\u044f \u043f\u0440\u0435\u0437\u0435\u043d\u0442\u0430\u0446\u0438\u0439 \u0438 \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0439.\r\n\r\n## \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\r\n\r\n```bash\r\npip install Pillow\r\n```\r\n\r\n## \u0411\u044b\u0441\u0442\u0440\u044b\u0439 \u0441\u0442\u0430\u0440\u0442\r\n\r\n```python\r\nfrom ai_builder_photo import create_chat_screenshot\r\n\r\n# \u041f\u0440\u043e\u0441\u0442\u043e\u0439 \u0434\u0438\u0430\u043b\u043e\u0433\r\ndialog = \"\"\"-\u041f\u0440\u0438\u0432\u0435\u0442\r\n-\u041f\u0440\u0438\u0432\u0435\u0442! \u041a\u0430\u043a \u0434\u0435\u043b\u0430?\r\n-\u0425\u043e\u0440\u043e\u0448\u043e, \u0430 \u0443 \u0442\u0435\u0431\u044f?\r\n-\u0422\u043e\u0436\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e!\"\"\"\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\r\nfile_path = create_chat_screenshot(dialog, \"chat.png\")\r\nprint(f\"\u0421\u043a\u0440\u0438\u043d\u0448\u043e\u0442 \u0441\u043e\u0437\u0434\u0430\u043d: {file_path}\")\r\n```\r\n\r\n## \u0420\u0430\u0441\u0448\u0438\u0440\u0435\u043d\u043d\u043e\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\r\n\r\n```python\r\nfrom ai_builder_photo import ChatScreenshotGenerator\r\n\r\n# \u041a\u0430\u0441\u0442\u043e\u043c\u043d\u044b\u0439 \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440\r\ngenerator = ChatScreenshotGenerator(\r\n    width=450,\r\n    background_color=\"#1C1C1E\"  # \u0422\u0435\u043c\u043d\u0430\u044f \u0442\u0435\u043c\u0430\r\n)\r\n\r\n# \u0418\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0435 \u0446\u0432\u0435\u0442\u043e\u0432\r\ngenerator.user_color = \"#0A84FF\"\r\ngenerator.bot_color = \"#2C2C2E\"\r\ngenerator.user_text_color = \"#FFFFFF\"\r\ngenerator.bot_text_color = \"#FFFFFF\"\r\n\r\n# \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430\r\nfile_path = generator.generate_from_dialog_string(dialog, \"dark_chat.png\")\r\n```\r\n\r\n## \u041f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u043d\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\r\n\r\n```python\r\nmessages = [\r\n    (\"\u041f\u0440\u0438\u0432\u0435\u0442! \u041a\u0430\u043a \u0434\u0435\u043b\u0430?\", True),  # True = \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\r\n    (\"\u041f\u0440\u0438\u0432\u0435\u0442! \u0412\u0441\u0435 \u043e\u0442\u043b\u0438\u0447\u043d\u043e!\", False),  # False = \u0431\u043e\u0442\r\n    (\"\u041e\u0442\u043b\u0438\u0447\u043d\u043e!\", True),\r\n]\r\n\r\nfile_path = generator.generate_chat_screenshot(messages, \"chat.png\")\r\n```\r\n\r\n## \u0424\u043e\u0440\u043c\u0430\u0442 \u0434\u0438\u0430\u043b\u043e\u0433\u0430\r\n\r\n\u0414\u0438\u0430\u043b\u043e\u0433 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u0441\u0442\u0440\u043e\u043a\u0438, \u0433\u0434\u0435 \u043a\u0430\u0436\u0434\u0430\u044f \u0441\u0442\u0440\u043e\u043a\u0430 \u043d\u0430\u0447\u0438\u043d\u0430\u0435\u0442\u0441\u044f \u0441 `-`:\r\n\r\n```\r\n-\u041f\u0435\u0440\u0432\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c)\r\n-\u0412\u0442\u043e\u0440\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 (\u0431\u043e\u0442)\r\n-\u0422\u0440\u0435\u0442\u044c\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c)\r\n-\u0427\u0435\u0442\u0432\u0435\u0440\u0442\u043e\u0435 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 (\u0431\u043e\u0442)\r\n```\r\n\r\n\u0427\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 (0, 2, 4...) = \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f (\u0441\u043f\u0440\u0430\u0432\u0430, \u0441\u0438\u043d\u0438\u0435)\r\n\u041d\u0435\u0447\u0435\u0442\u043d\u044b\u0435 \u043f\u043e\u0437\u0438\u0446\u0438\u0438 (1, 3, 5...) = \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0431\u043e\u0442\u0430 (\u0441\u043b\u0435\u0432\u0430, \u0441\u0435\u0440\u044b\u0435)\r\n\r\n## API\r\n\r\n### `create_chat_screenshot(dialog_string, save_path, width=400)`\r\n\r\n\u0411\u044b\u0441\u0442\u0440\u0430\u044f \u0444\u0443\u043d\u043a\u0446\u0438\u044f \u0434\u043b\u044f \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u0430.\r\n\r\n**\u041f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:**\r\n- `dialog_string` - \u0441\u0442\u0440\u043e\u043a\u0430 \u0434\u0438\u0430\u043b\u043e\u0433\u0430\r\n- `save_path` - \u043f\u0443\u0442\u044c \u0434\u043b\u044f \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u044f PNG \u0444\u0430\u0439\u043b\u0430\r\n- `width` - \u0448\u0438\u0440\u0438\u043d\u0430 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\r\n\r\n**\u0412\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442:** \u041f\u0443\u0442\u044c \u043a \u0441\u043e\u0437\u0434\u0430\u043d\u043d\u043e\u043c\u0443 \u0444\u0430\u0439\u043b\u0443\r\n\r\n### `ChatScreenshotGenerator`\r\n\r\n\u041e\u0441\u043d\u043e\u0432\u043d\u043e\u0439 \u043a\u043b\u0430\u0441\u0441 \u0434\u043b\u044f \u0433\u0435\u043d\u0435\u0440\u0430\u0446\u0438\u0438 \u0441\u043a\u0440\u0438\u043d\u0448\u043e\u0442\u043e\u0432.\r\n\r\n**\u041c\u0435\u0442\u043e\u0434\u044b:**\r\n- `generate_from_dialog_string(dialog_string, save_path)` - \u0438\u0437 \u0441\u0442\u0440\u043e\u043a\u0438 \u0434\u0438\u0430\u043b\u043e\u0433\u0430\r\n- `generate_chat_screenshot(messages, save_path)` - \u0438\u0437 \u0441\u043f\u0438\u0441\u043a\u0430 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\r\n\r\n## \u041f\u0440\u0438\u043c\u0435\u0440\u044b\r\n\r\n\u0417\u0430\u043f\u0443\u0441\u0442\u0438\u0442\u0435 `python example.py` \u0434\u043b\u044f \u0434\u0435\u043c\u043e\u043d\u0441\u0442\u0440\u0430\u0446\u0438\u0438 \u0432\u0441\u0435\u0445 \u0432\u043e\u0437\u043c\u043e\u0436\u043d\u043e\u0441\u0442\u0435\u0439 \u043c\u043e\u0434\u0443\u043b\u044f.\r\n\r\n## \u041e\u0441\u043e\u0431\u0435\u043d\u043d\u043e\u0441\u0442\u0438\r\n\r\n- \u2705 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u043f\u0435\u0440\u0435\u043d\u043e\u0441 \u0434\u043b\u0438\u043d\u043d\u044b\u0445 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0439\r\n- \u2705 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0442\u0435\u043c\u043d\u043e\u0439 \u0438 \u0441\u0432\u0435\u0442\u043b\u043e\u0439 \u0442\u0435\u043c\u044b  \r\n- \u2705 \u041f\u0440\u043e\u0441\u0442\u043e\u0435 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u0432 PNG \u0444\u0430\u0439\u043b\u044b\r\n- \u2705 \u041a\u0430\u0441\u0442\u043e\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0446\u0432\u0435\u0442\u043e\u0432 \u0438 \u0440\u0430\u0437\u043c\u0435\u0440\u043e\u0432\r\n- \u2705 \u041f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 \u0440\u0443\u0441\u0441\u043a\u043e\u0433\u043e \u044f\u0437\u044b\u043a\u0430\r\n- \u2705 \u0421\u0442\u0438\u043b\u044c \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u043e\u0432\r\n\r\n## \u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f\r\n\r\nMIT License\r\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AI Builder Photo - \u0433\u0435\u043d\u0435\u0440\u0430\u0442\u043e\u0440 \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u0439 \u0434\u0438\u0430\u043b\u043e\u0433\u043e\u0432 \u0432 \u0441\u0442\u0438\u043b\u0435 \u043c\u0435\u0441\u0441\u0435\u043d\u0434\u0436\u0435\u0440\u0430",
    "version": "1.0.0",
    "project_urls": {
        "Bug Reports": "https://github.com/yourusername/ai-builder-photo/issues",
        "Homepage": "https://github.com/yourusername/ai-builder-photo",
        "Source": "https://github.com/yourusername/ai-builder-photo"
    },
    "split_keywords": [
        "ai",
        " builder",
        " photo",
        " chat",
        " screenshot",
        " generator",
        " messenger",
        " image"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9a4a3762065369123cdecc05f462297910d779446a52560b02e95655998fc18a",
                "md5": "420517b1dc0673c1d2c77404720e7048",
                "sha256": "42a43c5ef3588e553ed10c6683de01c5a996e35868d898543d8c9272907972ad"
            },
            "downloads": -1,
            "filename": "ai_builder_photo-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "420517b1dc0673c1d2c77404720e7048",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 5545,
            "upload_time": "2025-09-06T20:21:43",
            "upload_time_iso_8601": "2025-09-06T20:21:43.584216Z",
            "url": "https://files.pythonhosted.org/packages/9a/4a/3762065369123cdecc05f462297910d779446a52560b02e95655998fc18a/ai_builder_photo-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-06 20:21:43",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "ai-builder-photo",
    "github_not_found": true,
    "lcname": "ai-builder-photo"
}
        
Elapsed time: 0.96548s