5 releases

0.1.5 Apr 7, 2024
0.1.3 Jan 22, 2024
0.1.2 Jan 21, 2024
0.1.1 Jan 12, 2024
0.1.0 Jan 11, 2024

#241 in Images

Download history 2/week @ 2024-01-05 7/week @ 2024-01-12 6/week @ 2024-01-19 18/week @ 2024-02-16 125/week @ 2024-02-23 10/week @ 2024-03-01 100/week @ 2024-04-05

100 downloads per month

MIT license

3.5MB
735 lines

png-glitch

A library to glitch PNG files. This library is inspired by the pnglitch, a Ruby library to glitch PNG images.

Please visit "The Art of PNG Glitch" for more details about glitching PNG images.

Glitched PNG image

The original image:

The original PNG file is a photo of a media art placed in a slightly darker space.

Example usage

The following snippet glitches ./a_png_file.png by

  • Changing filter method of all scan lines
  • Setting 1 to the 4th byte of each scan line

The glitched image is emitted to ./glitched.png.

use png_glitch::{FilterType, PngGlitch};

let mut png_glitch = PngGlitch::open("./a_png_file.png")?;
png_glitch.foreach_scanline(|scan_line|{
  scan_line.set_filter_type(FilterType::None);
  scan_line[4] = 1;
});
png_glitch.save("./glitched.png")?;

Contribution

  1. Fork the repository.
  2. Create a feature branch on your forked repository with git checkout -b feature-name command.
  3. Develop the feature.
  4. Commit your changes with git commit command.
  5. Upload the feature branch to GitHub and create a pull request.

License

Please refer to the LICENSE file.

Dependencies