Hello Guilers, I'm pleased to announce Guile-PNG 0.3.0, Portable Network Graphics (PNG)[1] library for GNU Guile, implemented in pure scheme: https://github.com/artyom-poptsov/guile-png/releases/tag/v0.3.0 This version adds ability to draw polygons and filled rectangles, as well as fixes line drawing algorithm. Also now Guile-PNG allows to create PNG images from scratch. The library uses Guile-ZLIB[2] to compress/decompress the PNG data. Also this is the third project of mine that uses Guile State Machine Compiler (Guile-SMC)[3]. * List of user-visible changes --8<---------------cut here---------------start------------->8--- * Changes in version 0.3.0 (2022-12-18) ** Improve the image parser PNG chunks are now decoded properly, including data decompression. ** Improve the image encoder Implement proper encoders for PNG chunks, including compression. ** Guile-PNG now allows to create PNG images from scratch This also means that Guile-PNG now allows to create PNG images and draw some graphics over them (using =(png graphics)= module.) ** =(png graphics)=: Fix line drawing algorithm Re-implement the better version of Bresenham's line drawing algorithm based on the GNU Octave code from ** =(png graphics)=: Add "" ** =(png graphics)=: Add "" ** Update the documentation ** Add new tests --8<---------------cut here---------------end--------------->8--- Happy hacking! - Artyom References: 1. https://www.rfc-editor.org/rfc/rfc2083 2. https://notabug.org/guile-zlib/guile-zlib/ 3. https://github.com/artyom-poptsov/guile-smc -- Artyom "avp" Poptsov Home page: https://memory-heap.org/~avp/ CADR Hackerspace co-founder: https://cadrspace.ru/ GPG: D0C2 EAC1 3310 822D 98DE B57C E9C5 A2D9 0898 A02F