diff --git a/.gitignore b/.gitignore index 4e049ec..d698b48 100644 --- a/.gitignore +++ b/.gitignore @@ -22,4 +22,5 @@ Thumbs.db test_image.png encoded_lsb.png test_*.png -*_lsb.png \ No newline at end of file +*_lsb.png*.egg-info/ +*.egg diff --git a/README.md b/README.md index 6d65e51..d3a2abb 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,20 @@ # CourseWork +# Stego App + +Стеганографическое приложение для сокрытия данных в изображениях. + +## Функциональность + +- **LSB метод** (Least Significant Bit) - сокрытие в младших битах пикселей +- **DCT метод** (Discrete Cosine Transform) - сокрытие в частотной области +- Графический интерфейс (Tkinter) +- CLI интерфейс + +## Установка + +### Автоматическая установка + +```bash +chmod +x install.sh +./install.sh \ No newline at end of file diff --git a/icons/stego.png b/icons/stego.png new file mode 100644 index 0000000..1d6ff06 Binary files /dev/null and b/icons/stego.png differ diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..3b91113 --- /dev/null +++ b/install.sh @@ -0,0 +1,66 @@ +cat > install.sh << 'EOF' +#!/bin/bash +# Установка Stego App для Ubuntu/Debian +# Автор: Петров Игорь ИУ10-24 +# Год: 2026 + +set -e + +echo "==========================================" +echo "Установка Stego App" +echo "==========================================" + +# 1. Установка pipx (если не установлен) +if ! command -v pipx &> /dev/null; then + echo "Установка pipx..." + sudo apt update + sudo apt install pipx -y + pipx ensurepath + source ~/.bashrc +fi + +echo "✓ pipx установлен" + +# 2. Установка Tkinter (для GUI) +if ! python3 -c "import tkinter" &> /dev/null; then + echo "Установка Tkinter..." + sudo apt install python3-tk -y +fi + +echo "✓ Tkinter установлен" + +# 3. Установка приложения через pipx +echo "Установка Stego App..." +pipx install --force . + +echo "✓ Приложение установлено" + +# 4. Установка иконки +echo "Установка иконки..." +sudo mkdir -p /usr/local/share/stego/icons +sudo cp icons/stego.png /usr/local/share/stego/icons/ + +# 5. Установка .desktop файла +echo "Установка ярлыка в меню..." +cat > ~/.local/share/applications/stego.desktop << DESKTOP +[Desktop Entry] +Type=Application +Name=Stego App +Comment=Сокрытие данных в изображениях +Exec=stego-gui +Icon=/usr/local/share/stego/icons/stego.png +Terminal=false +Categories=Graphics;Utility; +DESKTOP + +echo "==========================================" +echo "Установка завершена!" +echo "" +echo "Запуск: stego-gui" +echo "Или: stego --help" +echo "" +echo "Ярлык появится в меню приложений" +echo "==========================================" +EOF + +chmod +x install.sh \ No newline at end of file diff --git a/main.py b/main.py index ad57efe..4e1e2d7 100644 --- a/main.py +++ b/main.py @@ -211,10 +211,8 @@ def gui_main(): if __name__ == '__main__': + import sys if len(sys.argv) > 1 and sys.argv[1] == '--gui': gui_main() else: - main() - -if __name__ == '__main__': - main() \ No newline at end of file + main() \ No newline at end of file diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..25973f5 --- /dev/null +++ b/setup.py @@ -0,0 +1,23 @@ +#!/usr/bin/env python3 +from setuptools import setup, find_packages + +setup( + name='stego-app', + version='1.0.0', + author='Петров Игорь ИУ10-24', + description='Steganography application for hiding data in images', + packages=find_packages(), + include_package_data=True, + install_requires=[ + 'numpy>=2.4.3', + 'pillow>=12.1.1', + 'scipy>=1.7.0', + ], + entry_points={ + 'console_scripts': [ + 'stego = main:main', + 'stego-gui = main:gui_main', + ], + }, + python_requires='>=3.8', +) \ No newline at end of file diff --git a/stego.desktop b/stego.desktop new file mode 100644 index 0000000..7867606 --- /dev/null +++ b/stego.desktop @@ -0,0 +1,10 @@ +[Desktop Entry] +Type=Application +Name=Stego App +Comment=Сокрытие данных в изображениях +Exec=stego-gui +Icon=stego +Terminal=false +Categories=Graphics;Utility; +Keywords=steganography;hide;image; +StartupNotify=true \ No newline at end of file diff --git a/uninstall.sh b/uninstall.sh new file mode 100755 index 0000000..2490f6e --- /dev/null +++ b/uninstall.sh @@ -0,0 +1,27 @@ +#!/bin/bash +# Удаление Stego App + +set -e + +echo "==========================================" +echo "Удаление Stego App" +echo "==========================================" + +# Удаление через pip +echo "Удаление пакета..." +pip3 uninstall stego-app -y + +# Удаление иконки +echo "Удаление иконки..." +sudo rm -rf /usr/local/share/stego + +# Удаление .desktop файла +echo "Удаление ярлыка..." +sudo rm -f /usr/share/applications/stego.desktop + +# Обновление базы +sudo update-desktop-database + +echo "==========================================" +echo "Удаление завершено!" +echo "==========================================" \ No newline at end of file