- •Проектная работа
- •Глава 1. Технологии разработки Telegram бота. 4
- •Глава 2. Разработка Telegram-бота 21
- •Перечень терминов и сокращений
- •Введение
- •Глава 1. Технологии разработки Telegram бота.
- •Обзор литературы
- •1.2 История мессенджера Telegram
- •1.3 Сравнительный анализ языков программирования для Telegram-ботов
- •1.4 Характеристика языка программирования Python
- •1.5 Обзор фреймворков и библиотек для создания ботов
- •1.6 Обзор библиотек и методов обработки изображений
- •1.7 Описание алгоритмов и форматов данных
- •1.7.1. Цветовые модели и форматы данных
- •1.7.2 Алгоритм палитризации
- •1.7.3 Алгоритм классификации изображений
- •1.7.4 Алгоритм сжатия jpeg
- •1.7.5 Алгоритм сжатия png
- •Глава 2. Разработка Telegram-бота
- •2.1 Планируемые возможности бота и подходы к их реализации
- •2.2 Разработка модуля обработки изображений
- •2.3 Разработка пользовательского интерфейса
- •2.4 Разработка функций для работы с изображениями и передачи данных
- •2.4.1 Импорты, настройки и словари
- •2.4.2 Пользовательские настройки
- •2.4.3 Функции обработки изображений
- •2.4.4 Функции работы с пользовательскими данными
- •2.4.6 Обработчики команд и сообщений
- •2.4.7 Основной цикл
- •2.5 Описание разработки Telegram-бота
- •2.6 Инструкция пользователя
- •Список литературы
- •Приложение
Глава 2. Разработка Telegram-бота
Рис. 2 - Схема приложения, логика работы
2.1 Планируемые возможности бота и подходы к их реализации
В рамках проекта были определены ключевые функциональные возможности, направленные на создание удобного и эффективного инструмента для сжатия и обработки изображений через Telegram-бота. Основное внимание уделено разработке интуитивно понятного интерфейса и надёжной системы обработки графических данных с поддержкой современных алгоритмов оптимизации.
Для обеспечения персонализированной работы реализована система сохранения пользовательских настроек. Каждый пользователь может настроить параметры сжатия — качество JPEG, целевой размер файла, ограничение разрешения и выбор формата — которые сохраняются в локальном профиле на основе его Telegram ID. Это позволяет обеспечить индивидуальный подход к обработке изображений без необходимости повторной настройки при каждом использовании бота.
Ядром системы является модуль адаптивного сжатия изображений. Бот автоматически определяет тип загружаемого изображения (фотография или графика) с помощью эвристического анализа, основанного на количестве уникальных цветов и резкости краёв. В зависимости от результата классификации выбирается оптимальный формат: для фотографий применяется JPEG с настраиваемым уровнем качества и прогрессивной развёрткой, а для графики и скриншотов — палитровый PNG с дизерингом, что обеспечивает значительное уменьшение размера при сохранении читаемости текста и чёткости контуров.
Для удобства пакетной обработки реализован режим сборки PDF. Пользователь может последовательно загружать несколько изображений, которые затем объединяются в один PDF-файл с сохранением порядка и исходного качества. Этот функционал особенно востребован при создании документации, портфолио или учебных материалов.
Особое внимание уделено защите приватности: реализована опция удаления EXIF-метаданных (геолокация, параметры съёмки, информация об устройстве), что позволяет исключить утечку личных данных при передаче изображений.
Для обеспечения стабильной работы и положительного пользовательского опыта в системе реализованы:
· Модульная архитектура с разделением логики обработки изображений, работы с файлами и взаимодействия с Telegram API
· Комплексная обработка ошибок (неподдерживаемые форматы, повреждённые файлы, превышение размеров)
· Асинхронная обработка запросов через aiogram и asyncio, позволяющая одновременно работать с множеством пользователей
· Кэширование промежуточных данных в оперативной памяти для ускорения обработки серийных операций
Такой подход позволяет создать полноценную платформу для оптимизации изображений, которая сочетает в себе удобство мессенджера Telegram с функциональностью профессиональных инструментов обработки графики.
Реализация указанных возможностей позволяет создать удобный и гибкий инструмент для сжатия и конвертации изображений, который легко расширять поддержкой новых форматов и алгоритмов. Использование асинхронной архитектуры, адаптивных алгоритмов выбора формата и системы персональных настроек обеспечивает стабильность, эффективность и индивидуальный подход к обработке графических данных.
