⎕PNG

2022-09-21 Thread Dr . Jürgen Sauermann

  
  
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

2022-09-21 Thread Chris Moller

/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

2022-09-21 Thread Christian Robert

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

2022-09-21 Thread Dr . Jürgen Sauermann

  
  
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