⎕PNG
Hi, I would like to announce a new GNU APL feature: ⎕PNG PNG stands for "Portable Network Graphics" and is a file format, standardized in RFC 2083, for (still) images that is, among several other use cases, also directly understood by web browsers. Unlike some of the other image file formats around, the PNG file format has no strings attached, such as patents or copyrights. This was one of the reasons for choosing it in GNU APL. While APL appears to be the perfect choice for manipulating the large pixel arrays of images, this is not the case for the files on disc from which the pixel arrays are read or eventually stored. ⎕PNG tries to close this gap. ⎕PNG is comprised of three simple sub-function for: 1. reading a .png file into an APL array of pixels, 2. displaying such an array in a GTK window on the screen, and 3. writing a (supposedly somehow manipulated) pixel array into a .png file. The main work in the conversions above is actually provided by libpng (see www.libpng.org) therefore ⎕PNG is merely a lightweight wrapper around libpng. ⎕PNG is supposed to support all file variants (colour and grayscale, different pixel resolutions from 1 to 16 bits, with or without alpha channel), on input and most (= all but pixel arrays using colour palettes) on output. SVN 1589, see also info apl section 2.32 for details. Enjoy, Jürgen
Re: ⎕PNG
/Very/ cool! On 9/21/22 07:49, Dr. Jürgen Sauermann wrote: Hi, I would like to announce a new GNU APL feature: ⎕PNG PNG stands for "Portable Network Graphics" and is a file format, standardized in RFC 2083, for (still) images that is, among several other use cases, also directly understood by web browsers. Unlike some of the other image file formats around, the PNG file format has no strings attached, such as patents or copyrights. This was one of the reasons for choosing it in GNU APL. While APL appears to be the perfect choice for manipulating the large pixel arrays of images, this is not the case for the files on disc from which the pixel arrays are read or eventually stored. ⎕PNG tries to close this gap. *⎕PNG* is comprised of three simple sub-function for: 1. reading a *.png* file into an APL array of pixels, 2. displaying such an array in a GTK window on the screen, and 3. writing a (supposedly somehow manipulated) pixel array into a *.png* file. The main work in the conversions above is actually provided by *libpng* (see www.libpng.org) therefore ⎕PNG is merely a lightweight wrapper around *libpng*. ⎕PNG is supposed to support all file variants (colour and grayscale, different pixel resolutions from 1 to 16 bits, with or without alpha channel), on input and most (= all but pixel arrays using colour palettes) on output. *SVN 1589*, see also i*nfo apl* section 2.32 for details. Enjoy, Jürgen OpenPGP_0xDA6C0193083E.asc Description: OpenPGP public key OpenPGP_signature Description: OpenPGP digital signature
Re: ⎕PNG
There are two comments that start with "/" rather than "//" Xtian. Quad_PNG.cc:865:1: error: expected unqualified-id before ‘/’ token 865 | / | ^ Quad_PNG.cc:886:1: error: expected unqualified-id before ‘/’ token 886 | /- | ^ Quad_PNG.cc:51:12: warning: ‘verbosity’ defined but not used [-Wunused-variable] 51 | static int verbosity = SHOW_NONE; |^ make[3]: *** [Makefile:4374: apl-Quad_PNG.o] Error 1 make[3]: *** Waiting for unfinished jobs mv -f .deps/apl-UserPreferences.Tpo .deps/apl-UserPreferences.Po make[3]: Leaving directory '/home/xtian/gnuapl/src' make[2]: *** [Makefile:5010: all-recursive] Error 1 make[2]: Leaving directory '/home/xtian/gnuapl/src' make[1]: *** [Makefile:537: all-recursive] Error 1 make[1]: Leaving directory '/home/xtian/gnuapl' make: *** [Makefile:425: all] Error 2 [xtian@fedora:/home/xtian/gnuapl] $ On 2022-09-21 07:49, Dr. Jürgen Sauermann wrote: Hi, I would like to announce a new GNU APL feature: ⎕PNG PNG stands for "Portable Network Graphics" and is a file format, standardized in RFC 2083, for (still) images that is, among several other use cases, also directly understood by web browsers. Unlike some of the other image file formats around, the PNG file format has no strings attached, such as patents or copyrights. This was one of the reasons for choosing it in GNU APL. While APL appears to be the perfect choice for manipulating the large pixel arrays of images, this is not the case for the files on disc from which the pixel arrays are read or eventually stored. ⎕PNG tries to close this gap. *⎕PNG* is comprised of three simple sub-function for: 1. reading a *.png* file into an APL array of pixels, 2. displaying such an array in a GTK window on the screen, and 3. writing a (supposedly somehow manipulated) pixel array into a *.png* file. The main work in the conversions above is actually provided by *libpng* (see www.libpng.org ) therefore ⎕PNG is merely a lightweight wrapper around *libpng*. ⎕PNG is supposed to support all file variants (colour and grayscale, different pixel resolutions from 1 to 16 bits, with or without alpha channel), on input and most (= all but pixel arrays using colour palettes) on output. *SVN 1589*, see also i*nfo apl* section 2.32 for details. Enjoy, Jürgen
Re: ⎕PNG
Hi Christian, thanks, fixed in SVN 1590. Best Regards, Jürgen On 9/21/22 8:04 PM, Christian Robert wrote: There are two comments that start with "/" rather than "//" Xtian. Quad_PNG.cc:865:1: error: expected unqualified-id before ‘/’ token 865 | / | ^ Quad_PNG.cc:886:1: error: expected unqualified-id before ‘/’ token 886 | /- | ^ Quad_PNG.cc:51:12: warning: ‘verbosity’ defined but not used [-Wunused-variable] 51 | static int verbosity = SHOW_NONE; | ^ make[3]: *** [Makefile:4374: apl-Quad_PNG.o] Error 1 make[3]: *** Waiting for unfinished jobs mv -f .deps/apl-UserPreferences.Tpo .deps/apl-UserPreferences.Po make[3]: Leaving directory '/home/xtian/gnuapl/src' make[2]: *** [Makefile:5010: all-recursive] Error 1 make[2]: Leaving directory '/home/xtian/gnuapl/src' make[1]: *** [Makefile:537: all-recursive] Error 1 make[1]: Leaving directory '/home/xtian/gnuapl' make: *** [Makefile:425: all] Error 2 [xtian@fedora:/home/xtian/gnuapl] $ On 2022-09-21 07:49, Dr. Jürgen Sauermann wrote: Hi, I would like to announce a new GNU APL feature: ⎕PNG PNG stands for "Portable Network Graphics" and is a file format, standardized in RFC 2083, for (still) images that is, among several other use cases, also directly understood by web browsers. Unlike some of the other image file formats around, the PNG file format has no strings attached, such as patents or copyrights. This was one of the reasons for choosing it in GNU APL. While APL appears to be the perfect choice for manipulating the large pixel arrays of images, this is not the case for the files on disc from which the pixel arrays are read or eventually stored. ⎕PNG tries to close this gap. *⎕PNG* is comprised of three simple sub-function for: 1. reading a *.png* file into an APL array of pixels, 2. displaying such an array in a GTK window on the screen, and 3. writing a (supposedly somehow manipulated) pixel array into a *.png* file. The main work in the conversions above is actually provided by *libpng* (see www.libpng.org) therefore ⎕PNG is merely a lightweight wrapper around *libpng*. ⎕PNG is supposed to support all file variants (colour and grayscale, different pixel resolutions from 1 to 16 bits, with or without alpha channel), on input and most (= all but pixel arrays using colour palettes) on output. *SVN 1589*, see also i*nfo apl* section 2.32 for details. Enjoy, Jürgen