From container to embedding

The new version does not write payload as a visible pixel matrix. It takes an existing non-interlaced 8-bit RGB or RGBA PNG and changes selected low color bits. Only fully opaque pixels are used.

Before writing, PixelSteg calculates actual capacity. Afterwards it measures MSE, PSNR and global SSIM. These metrics compare the technical image change; they prove neither human invisibility nor resistance to steganalysis.

Messages and files inside existing PNGs

01

Balanced

One low bit per RGB channel in image order is the default for unchanged PNG carriers.

1 BIT / CHANNEL
02

Dense

Two bits per channel roughly double capacity while allowing larger color changes.

2 BITS / CHANNEL
03

Adaptive

Textured 8×8 blocks are prioritized before embedding continues in a controlled order.

TEXTURE PRIORITY
04

Resilient

Adaptive placement plus Hamming(12,8) can correct one flipped bit in each codeword.

HAMMING(12,8)
05

Locator and inspection

A fixed and deliberately detectable locator describes the profile and package before a password is requested.

PUBLIC FORMAT
06

Content and protection

UTF-8 messages or up to 64 files can optionally use Brotli and AES-256-GCM.

BROTLI / AES-GCM

Where it is useful

PixelSteg supports file-format experiments, reproducible steganography demonstrations and local handoffs where a PNG is deliberately selected as carrier. Capacity preview, profile comparison and quality values keep the decision reviewable.

CLI / LOCAL
pixelsteg embed-file cover.png carrier.png notes.txt map.pdf --profile balanced
pixelsteg inspect carrier.png
pixelsteg extract carrier.png recovered

From input to evidence

01

Inspect

The cover is checked for format, pixel count and usable capacity.

02

Protect

Bundle, compression and optional encryption are prepared.

03

Embed

The selected profile distributes data through low RGB bits.

04

Measure

Capacity, MSE, PSNR, SSIM and integrity remain visible.

Design boundaries

The boundary is the lossless image

  • Public, detectable format; no promise against steganalysis or image editing
  • Resize, crop, color adjustment, palette conversion and recompression can destroy payload
  • Resilient is not general protection against cropping, scaling or JPEG compression
  • Encryption does not hide the PixelSteg locator or prove who created the carrier
  • Recovered files remain untrusted content

PixelSteg · RC facts

Release candidate
2.0.0-rc.1
Carrier
non-interlaced 8-bit RGB/RGBA PNG
Profiles
Balanced, Dense, Adaptive, Resilient
Content
UTF-8 message or up to 64 files
Optional
Brotli, AES-256-GCM, PBKDF2-HMAC-SHA-256 with 600,000 iterations
Metrics
capacity, MSE, PSNR, global SSIM
Quality assurance
63 automated tests in the RC state
Data path
fully local
The carrier remains a lossless PNG while technical changes and protection limits stay measurable and open.

Public source on GitHubOpen release candidate