- •Проектная работа
- •Глава 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 Инструкция пользователя
- •Список литературы
- •Приложение
Министерство цифрового развития, связи и массовых коммуникаций Российской Федерации
ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ОБРАЗОВАНИЯ "САНКТ-ПЕТЕРБУРГСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ТЕЛЕКОММУНИКАЦИЙ ИМ. ПРОФ. М. А. БОНЧ-БРУЕВИЧА"
Факультет инфокоммуникационных сетей и систем
Кафедра программной инженерии и вычислительной техники
Проектная работа
на тему
«Разработка Telegram-бота для сжатия изображений»
по дисциплине «Операционные системы и сети»
Выполнили:
студенты 3 курса
группы ИКПИ-32
Кларк А. Е.
Блинов И. С.
Яковлев М. А.
Преподаватель:
Кандидат технических наук, Доцент кафедры ПИиВТ Дагаев Александр Владимирович
Оглавление
Перечень терминов и сокращений 3
Введение 3
Глава 1. Технологии разработки Telegram бота. 4
1.1 Обзор литературы 4
1.2 История мессенджера Telegram 6
1.3 Сравнительный анализ языков программирования для Telegram-ботов 8
1.4 Характеристика языка программирования Python 11
1.5 Обзор фреймворков и библиотек для создания ботов 12
1.6 Обзор библиотек и методов обработки изображений 13
1.7 Описание алгоритмов и форматов данных 15
Глава 2. Разработка Telegram-бота 21
2.1 Планируемые возможности бота и подходы к их реализации 21
2.2 Разработка модуля обработки изображений 22
2.3 Разработка пользовательского интерфейса 27
2.4 Разработка функций для работы с изображениями и передачи данных 30
2.5 Описание разработки Telegram-бота 35
2.6 Инструкция пользователя 38
Выводы 41
Список литературы 43
Приложение 44
Перечень терминов и сокращений
API — Application Programming Interface (интерфейс прикладного программирования)
asyncio — Асинхронная библиотека Python
aiogram — Асинхронный фреймворк для создания Telegram-ботов на Python
Bot API — Интерфейс программирования ботов Telegram
EXIF — Exchangeable Image File Format (формат метаданных изображений)
HTTP — HyperText Transfer Protocol (протокол передачи гипертекста)
ICC — International Color Consortium (профиль цветового пространства)
ID — Identifier (идентификатор)
I/O — Input/Output (ввод/вывод)
img2pdf — Библиотека для конвертации изображений в PDF
JSON — JavaScript Object Notation (формат обмена данными)
JPEG — Joint Photographic Experts Group (формат сжатия изображений)
MTProto — Mobile Telegram Protocol (протокол Telegram)
MVP — Minimum Viable Product (минимально жизнеспособный продукт)
PIL — Python Imaging Library (библиотека обработки изображений)
Pillow — Современный форк PIL для работы с изображениями
PNG — Portable Network Graphics (формат сжатия изображений без потерь)
PNG-P — PNG Paletted (палитровый PNG)
UUID — Universally Unique Identifier (универсальный уникальный идентификатор)
WORKDIR — Working Directory (рабочий каталог)
Введение
В условиях стремительной цифровизации и роста объёма передаваемых медиаданных возникает насущная потребность в создании удобных, доступных и эффективных инструментов для оптимизации графического контента. Одной из ключевых задач современного информационного обмена является обработка изображений — их сжатие, конвертация и адаптация под различные платформы без потери визуального качества. Telegram, как популярная и доступная платформа, открывает широкие возможности для реализации подобных решений в формате бота — с минимальными затратами на разработку интерфейса, высокой степенью интерактивности и мгновенной доступностью для миллионов пользователей. Создание Telegram-бота для сжатия и обработки изображений представляет собой актуальную задачу, объединяющую современные подходы к работе с медиаконтентом, алгоритмами оптимизации данных и мобильными технологиями.
Основные задачи проекта включают: проведение анализа современных библиотек и методов обработки изображений на Python; определение функциональных требований к системе сжатия (поддержка форматов JPEG и PNG, адаптивный выбор алгоритма, настройка качества и размера, удаление метаданных); разработку архитектуры бота, включая пользовательский интерфейс (система команд, обработка файлов, отображение результатов), логику обработки изображений с использованием алгоритмов классификации и оптимизации, а также механизм хранения пользовательских настроек. Далее требуется реализовать бота на выбранном языке программирования (Python с библиотеками aiogram и Pillow), протестировать его функциональность на различных типах изображений, устранить возможные ошибки и оптимизировать производительность. Завершающим этапом является подготовка подробной инструкции по использованию бота для различных категорий пользователей.
Требования к боту включают: поддержку форматов JPEG и PNG, автоматическое определение типа изображения (фотография/графика) и выбор оптимального алгоритма сжатия, возможность настройки параметров (качество, целевой размер, ограничение разрешения), функцию удаления EXIF-метаданных для защиты конфиденциальности, а также режим сборки PDF из нескольких изображений.
Документация должна содержать техническое описание архитектуры бота, руководство по настройке и развертыванию, а также инструкцию для конечных пользователей по работе с основными функциями. Ожидаемым результатом является создание универсального инструмента для быстрой и эффективной оптимизации изображений, который позволит пользователям экономить трафик, место на устройствах и время при работе с визуальным контентом непосредственно в мессенджере Telegram.
