Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/soumyasen1809/pngme
Implementation of PNGme
https://github.com/soumyasen1809/pngme
png-encoder rust
Last synced: 5 days ago
JSON representation
Implementation of PNGme
- Host: GitHub
- URL: https://github.com/soumyasen1809/pngme
- Owner: soumyasen1809
- License: gpl-2.0
- Created: 2024-08-21T19:22:04.000Z (3 months ago)
- Default Branch: main
- Last Pushed: 2024-08-24T07:27:46.000Z (3 months ago)
- Last Synced: 2024-08-24T22:53:20.851Z (3 months ago)
- Topics: png-encoder, rust
- Language: Rust
- Homepage:
- Size: 55.7 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# PNGme
Implementation of the [PNGme challenge](https://picklenerd.github.io/pngme_book/introduction.html) in Rust## What are we making?
We're making a command line program that lets you hide secret messages in PNG file.
The program will have four commands:
- Encode a message into a PNG
- Decode a message stored in a PNG
- Remove a message from a PNG
- Print a list of PNG chunks that can be searched for messagesThe part of the PNG spec used is [here](http://www.libpng.org/pub/png/spec/1.2/PNG-Structure.html).
## Installation
1. Clone the repository:
```bash
git clone [email protected]:soumyasen1809/PNGme.git
```2. Change to the project directory:
```bash
cd png_me
```3. Build the project using Cargo
```bash
cargo build --release
```4. You can find the compiled binary in the `target/release` directory
## Usage
- To encode a message into a PNG image and save the result:
```bash
cargo run --release -- encode --in-file-path --chunk-type --message --out-file-path
```
- To decode a hidden message from a PNG image and print the message if one is found:
```bash
cargo run --release -- decode --in-file-path --chunk-type
```- To remove a chunk from a PNG file and save the result:
```bash
cargo run --release -- remove --in-file-path --chunk-type
```- To print all of the chunks in a PNG file:
```bash
cargo run --release -- print --in-file-path
```## License
This project is licensed under the GNU GENERAL PUBLIC LICENSE. See the [LICENSE](./LICENSE) file for details.