Hyperstencil

A bespoke multichannel raw image utility
Alternatives To Hyperstencil
Project NameStarsDownloadsRepos Using ThisPackages Using ThisMost Recent CommitTotal ReleasesLatest ReleaseOpen IssuesLicenseLanguage
Image4,1052,2021,894a day ago104August 09, 2023275mitRust
Encoding and decoding images in Rust
Image Tiff80386610 days ago15July 24, 202228mitRust
TIFF decoding and encoding library in pure Rust
Mipi Csi 26
3 years agootherSystemVerilog
Capture images/video from a Raspberry Pi Camera (MIPI CSI-2) with an FPGA
Hyperstencil3
4 years ago1mitRust
A bespoke multichannel raw image utility
Pyglet Avbin Optimizations2
14 years agobsd-3-clausePython
an attempt to speed up pyglet's video decoding pipeline by using a fragment shader for YUV to RGB color space conversion
Alternatives To Hyperstencil
Select To Compare


Alternative Project Comparisons
Readme

Hyperstencil

Hyperstencil is a command line utility that lets you convert between JPEG or PNG images, and raw (headerless) files with an arbitrary number of layers per channel. It does this by subdividing each color channel by intensity, with lower layers containing only darker pixel values, and higher layers containing brighter ones, like a set of stencils. This is a very inefficient image format, but can be interesting for sonification purposes. For instance, a 4-layer RGB raw image can be imported as a 12-channel audio file in Audacity, manipulated, and exported for re-assembly.

Building/Installation

Make sure you have a recent version of Rust, and run:

make && make install

in the top-level project directory. By default the binary will be installed in /usr/local/bin, but this can be customized in the Makefile.

Usage

Encoding:

USAGE:

hyperstencil encode <INPUT> <OUTPUT> --layers <layers>

Decoding:

USAGE:

hyperstencil decode <INPUT> <OUTPUT> --height <height> --layers <layers> --width <width>

Examples:

hyperstencil encode -l4 input.png output.raw
hyperstencil encode --layers 4 input.png output.raw

hyperstencil decode -l4 -w640 -h480 input.raw output.png
hyperstencil decode --layers 4 --width 640 --height 480 input.raw output.png

A few notes on behavior

If your raw file and the dimensions or layers supplied in decoding don't match, Hyperstencil will do its best to re-assemble something, but it will probably look quite strange. Depending on your tastes in glitch art, this could actually be to your liking. Layer values of 0 are coerced to 1, which is just a regular old image. Keep in mind that for an RGB source image every additional layer increases the raw file size by a factor of 3. Otherwise don't be afraid to get weird with it.

Popular Rgb Projects
Popular Decoding Projects
Popular User Interface Categories

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.
Rust
Rgb
Decoding