10 releases

0.3.1 Sep 8, 2024
0.3.0 Jul 3, 2024
0.2.2 Jul 1, 2024
0.2.1 Jun 30, 2024
0.1.3 Jan 22, 2024

#376 in Images

Download history 19/week @ 2024-06-17 108/week @ 2024-06-24 395/week @ 2024-07-01 159/week @ 2024-09-02 42/week @ 2024-09-09 76/week @ 2024-09-16

277 downloads per month
Used in png-glitch-cli

MIT license

3.5MB
875 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