https://github.com/aka411/png-decoder
A simple PNG (Portable Network Graphic) file decoder written in plain JavaScript without using any external libraries.
https://github.com/aka411/png-decoder
deflate-decompression huffman-decoding lz77-decoding png png-decoder
Last synced: about 1 year ago
JSON representation
A simple PNG (Portable Network Graphic) file decoder written in plain JavaScript without using any external libraries.
- Host: GitHub
- URL: https://github.com/aka411/png-decoder
- Owner: aka411
- License: mit
- Created: 2025-02-01T08:12:15.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-08T07:35:27.000Z (over 1 year ago)
- Last Synced: 2025-02-17T11:35:24.377Z (over 1 year ago)
- Topics: deflate-decompression, huffman-decoding, lz77-decoding, png, png-decoder
- Language: JavaScript
- Homepage:
- Size: 18.6 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# png-decoder
A simple PNG (Portable Network Graphic) decoder written in plain JavaScript without using any libraries.I wrote this as a learning exercise and is one of my earlier projects and is badly organized and unreadable.
I wrote this as i was curious about how file compression works.I learned a lot while writing this, implemented functions to decompress data compressed using DEFLATE (lossless data compression algorithm involving a combination of LZ77 and Huffman coding).
## Resources that helped me write this decoder
* For Png Specification [PNG SPECIFICATION](http://www.libpng.org/pub/png/spec/1.2/png-1.2.pdf)
* For ZLIB Compressed Data Format Specification [ZLIB Data Format](https://www.ietf.org/rfc/rfc1950.txt)
* For Deflate compression [Deflate](https://www.rfc-editor.org/rfc/rfc1951.html)