# vinayakgoyal2208/steganography-hiding-text-in-image architecture

> Architecture diagram of the GitHub repository vinayakgoyal2208/steganography-hiding-text-in-image, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/vinayakgoyal2208/steganography-hiding-text-in-image
- Repository: https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image

## Overview

This is a Windows Forms utility for hiding arbitrary file contents in an image and extracting them later. The workflow is: select a carrier image and file, check capacity, embed file data and its name in image color-channel bits, save the resulting image; for extraction, load that image, recover the name and bytes, and save the file. The sampled implementation places UI handling and steganography logic together in Form.cs; the designer excerpt confirms separate encode/decode controls. Other event wiring is not fully shown.

Main entry points: [`Steganography/Steganography/Form.cs`](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs) (Steganography form), [`Steganography/Steganography/Form.Designer.cs`](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.Designer.cs) (Form controls), [`Steganography/Steganography/Program.cs`](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Program.cs) (App entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_app["Application"]
  node_entry["App entry<br/>[Program.cs]"]
  node_form["Steganography form<br/>[Form.cs]"]
  node_controls["Form controls<br/>[Form.Designer.cs]"]
end

subgraph group_embed["Embedding"]
  node_capacity["Capacity check<br/>[Form.cs]"]
  node_embedding["Bit-layer embedding<br/>[Form.cs]"]
  node_imageoutput["Encoded image<br/>[Form.cs]"]
end

subgraph group_extract["Extraction"]
  node_imageinput["Encoded image input<br/>[Form.cs]"]
  node_metadata["Name and size recovery<br/>[Form.cs]"]
  node_extraction["Bit-layer extraction<br/>[Form.cs]"]
  node_recovered["Recovered file<br/>[Form.cs]"]
end

node_user(("User"))
node_filesystem["Local files"]

node_entry -->|"launches"| node_form
node_user -->|"uses"| node_controls
node_controls -->|"dispatches actions"| node_form
node_form -->|"reads inputs"| node_filesystem
node_form -->|"checks capacity"| node_capacity
node_form -->|"encodes file"| node_embedding
node_capacity -->|"permits embedding"| node_embedding
node_embedding -->|"produces image"| node_imageoutput
node_form -->|"saves image"| node_filesystem
node_form -->|"loads image"| node_imageinput
node_form -->|"recovers name"| node_metadata
node_form -->|"decodes bytes"| node_extraction
node_metadata -->|"provides name and size"| node_extraction
node_extraction -->|"produces bytes"| node_recovered
node_form -->|"saves recovered file"| node_filesystem

click node_entry "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Program.cs"
click node_form "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_controls "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.Designer.cs"
click node_capacity "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_embedding "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_imageoutput "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_imageinput "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_metadata "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_extraction "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"
click node_recovered "https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_entry,node_form,node_controls,node_user toneBlue
class node_capacity,node_embedding,node_imageoutput toneAmber
class node_imageinput,node_metadata,node_extraction,node_recovered toneMint
class node_filesystem toneIndigo
```

## Components

### Application

- [App entry](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Program.cs): `Steganography/Steganography/Program.cs`
- [Steganography form](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Form controls](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.Designer.cs): `Steganography/Steganography/Form.Designer.cs`

### Embedding

- [Capacity check](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Bit-layer embedding](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Encoded image](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`

### Extraction

- [Encoded image input](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Name and size recovery](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Bit-layer extraction](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`
- [Recovered file](https://github.com/vinayakgoyal2208/steganography-hiding-text-in-image/blob/main/Steganography/Steganography/Form.cs): `Steganography/Steganography/Form.cs`

### Other components

- **User**
- **Local files**

## Connections

- App entry → Steganography form: launches
- User → Form controls: uses
- Form controls → Steganography form: dispatches actions
- Steganography form → Local files: reads inputs
- Steganography form → Capacity check: checks capacity
- Steganography form → Bit-layer embedding: encodes file
- Capacity check → Bit-layer embedding: permits embedding
- Bit-layer embedding → Encoded image: produces image
- Steganography form → Local files: saves image
- Steganography form → Encoded image input: loads image
- Steganography form → Name and size recovery: recovers name
- Steganography form → Bit-layer extraction: decodes bytes
- Name and size recovery → Bit-layer extraction: provides name and size
- Bit-layer extraction → Recovered file: produces bytes
- Steganography form → Local files: saves recovered file
