Metadata-Version: 2.4
Name: imagestego
Version: 2.0.1
Summary: Multimedia Obfuscation & Steganography Toolkit
Author-email: Equinox_Wangstu <wangstu@126.com>
License: MIT
Keywords: steganography,obfuscation,image,video,encryption
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Multimedia :: Graphics
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: numpy>=1.24
Requires-Dist: Pillow>=9.0
Requires-Dist: cryptography>=41.0
Requires-Dist: scipy>=1.10
Requires-Dist: moviepy>=2.0
Provides-Extra: gui
Requires-Dist: pywebio; extra == "gui"
Provides-Extra: progress
Requires-Dist: tqdm; extra == "progress"
Provides-Extra: dev
Requires-Dist: pytest; extra == "dev"
Requires-Dist: pytest-cov; extra == "dev"
Requires-Dist: ruff; extra == "dev"
Dynamic: license-file

# ImageStego

Multimedia Obfuscation & Steganography Toolkit — a Python library for image/video obfuscation and message hiding.

## Features

### Obfuscation (Image / GIF / MP4)

| Algorithm | Description |
|-----------|-------------|
| Pixel Scramble | Pseudo-random pixel permutation |
| Block Scramble | Block-level shuffling |
| Arnold Cat Map | Classic chaotic map transform |
| Baker's Map | Baker's map + optional XOR encryption |
| Henon Map | Henon chaotic system |
| Logistic Map | Logistic chaotic sequence |
| DNA Encoding | DNA-based pixel encoding |
| Spiral Scan | Spiral-order pixel rearrangement |

### Steganography

| Method | Description |
|--------|-------------|
| LSB | Least Significant Bit embedding |
| LSB Edge | Randomized LSB with edge detection |
| DCT | Frequency-domain (DCT coefficient) embedding |
| DWT | Wavelet-domain (Haar DWT) embedding |
| PVD | Pixel Value Differencing |
| Spread Spectrum | QIM-based spread spectrum |

All steganography methods support **Fernet encryption** (password-protected) and **timestamp embedding**.

## Installation

```bash
pip install imagestego
```

Optional dependencies:

```bash
pip install imagestego[gui]       # Web GUI (PyWebIO)
pip install imagestego[progress]  # Progress bars (tqdm)
```

## Quick Start

### Obfuscation

```python
from imagestego import pixel_obfuscate, pixel_deobfuscate

# Encrypt
pixel_obfuscate("input.png", "encrypted.png", seed=42)

# Decrypt
pixel_deobfuscate("encrypted.png", "restored.png", seed=42)
```

### Multi-layer Pipeline

```python
from imagestego import ObfuscationPipeline

pipeline = ObfuscationPipeline()
pipeline.add_layer("arnold", iterations=30)
pipeline.add_layer("bakers", iterations=10, password="secret")
pipeline.add_layer("dna")

sidecar = pipeline.encrypt("input.png", "output.png")
# Generates output.png + output.layers.json

pipeline.decrypt("output.png", "restored.png")
```

### Steganography

```python
from imagestego import lsb_embed_message, lsb_extract_message

# Hide a message
lsb_embed_message("cover.png", "Hello World", "stego.png", password="key123")

# Extract
result = lsb_extract_message("stego.png", password="key123")
print(result["message"])
```

### Batch Processing

```python
from imagestego.batch_processor import batch_obfuscate

result = batch_obfuscate(
    input_dir="./images",
    output_dir="./output",
    method="arnold",
    params={"iterations": 20},
    max_workers=4,
)
print(result)  # Total=10, Success=10, Failed=0
```

## CLI

```bash
imagestego          # Interactive CLI
imagestego-gui      # Web GUI (requires pywebio)
```

## Requirements

- Python >= 3.9
- numpy, Pillow, cryptography, scipy, moviepy

## License

MIT
