Provided by: libafterimage-dev_2.2.12-17.1build3_amd64 bug

NAME

       afterimage - overview of libAfterImage image library libAfterImage/libAfterImage

NAMElibAfterImage

       - generic imaging library originally designed for AfterStep X Window Manager.

PURPOSE

       libAfterImage  is the imaging library implemented for AfterStep X Window Manager. It has been generalized
       to be suitable for any application in need of robust graphics engine.

       It provides facilities for loading images from files of different formats, compressed in  memory  storage
       of images, scaling, tinting/shading, flipping and superimposition of arbitrary number of images over each
       other. In addition it allows for linear gradients drawing, and antialiased/smoothed  text  drawing  using
       both  FreeType library and X Window fonts.

       Primary goals of this library are to achieve exceptional quality of images and text, making code fast and
       small at the same time.  Additional steps are taken to compensate for screen colordepth  limitation,  and
       different error diffusion algorithms are used to provide for smooth images even in low colordepth modes.

HISTORY

       libAfterImage has been implemented as an attempt to address several issues. First one, and most important
       is that X Window System completely lacks any tools for image manipulation, except  for  very  rudimentary
       operations.  With  Introduction of Render extensions in XFree86 4.0 that situation is changing, but still
       is far from perfect. There need is therefore to implement client side  image  manipulation.  That  inturn
       creates a problem of image data transfer between Server and client.

       To  avoid that full-time image storage on the client side is needed.  Which is memory extensive. So there
       appears to be a need for some in-memory compression.

       On the other side there is an image quality issue. Its  easy  to  write  a  scaling  function  by  simply
       dropping   out   or   duplicating   pixels,   but  quality  is  awfull.  What  is  needed  is  very  fast
       averaging/interpolation code. That brings us to the issue of 8 bits per channel. Add two pixels  together
       and  you  get  overflow.  So  all the math has to be performed in different colorspace and then converted
       back. On the other side, such a conversion may discard valuable bits, so some compensation method has  to
       be implemented.

       On the text drawing side of things, there are numerous problems just as well. Native X fonts look ugly as
       soon as you try to show any decently sized  text.  That  is  supposed  to  be  solved  with  said  Render
       extensions  to XFree86, but as experiense has shown, things aren't as easy as it looks, besides one wants
       his app to run well under any X Server. FreeType library provides a solution, but not  always  available.
       Another  problem  is that if you keep all your images on the client side, you want to draw text on client
       side as well.

       The solution is to provide transparent interface that could use both X fonts and FreeType,  cache  glyphs
       on the client side and possibly perform smoothing of ugly X fonts.

       There is no library solving all this problems in one fell swoop, except for monstrous ones, like ImLib.

       Hence libAfterImage has come to life.

DESCRIPTION

       libAfterStep provides sevarl facilities.

       1.  X Visual abstruction layer via ASVisual. This layer handles color management, transfer of data to and
       from X Server, and other screen related stuff.

       2. Scanline handling facility via ASScanline. ASScanline is the most widely used  structure  since  image
       handling is implemented on per-scanline basis.

       3.  Image  storage,  trasformation and rendering via ASImage. ASImage provides for generic container used
       for any image  or  text  manipulation.  It  incorporates  such  a  robust  facilities  as  in-memory  RLE
       compression,  separate  channel  storage  of  4  channels  ( Alpha, Red, Green, and Blue ) with 8 bit per
       channel.

       4. Simplified font handling facility via ASFont and ASFointManager.  All the font handling is done  using
       ASFont  structure,  no  matter  what  type of font is used. Any font supported by X11 and FreeType can be
       used.

       5. Transparent image file reading for many different formats. Included built-in XPM reading code and  XCF
       (  GIMP's  native  format  ).   Overall supported: via external libraries : XPM, JPEG, PNG, TIFF, GIF via
       built in code : XPM, XCF, PNM, PPM, BMP, ICO, CUR Note that XPM can be supported both via  built-in  code
       or  via  libXpm,  depending on compilation configuration.  Actuall image file format is autodetected from
       the file contents - file name extension is not used and can be anything at all.

       6. Image export into many popular file formats. Currently implemented : XPM,  JPEG,  PNG,  GIF.  Work  is
       underway to implement support for TIFF, XCF, BMP, ICO.

       7. Image quantization to arbitrary size colormap.

       8.  libAfterImage  could  be  used  without  X  window  system, which is convenient for such thing as web
       development. XML Image manipulation  tool,  that  could  be  used  in  such  activity  is  included  (see
       ascompose.c)

       9. Image reference counting

USES

       libAfterBase  -  AfterStep  basic  functionality library. That Includes Hash tables, file search methods,
       message output, generic types.  However effort has been made to allow  for  standalone  configuration  as
       well. If libAfterBase is not found at compilation time - libAfterImage will use extract from libAfterBase
       included with libAfterImage.

SEE ALSO

       Examples API Reference

TODO

       Implement support for Targa and PCX image format and maybe some other formats as well.

       Implement complete support for I18N internationalization.

       Implement color<->pixel conversion for all colordepths.

AUTHOR

       Sasha Vasko <sasha at aftercode dot net>
       libAfterImage/Examples

EXAMPLE

       ASView  - image loading from the file and displaying in window.  ASScale - image loading  from  file  and
       scaling to arbitrary size.  ASTile  - image loading from file, tiling and tinting to arbitrary
                 size  and color.  ASMerge - imgae loading and merging with another image.  ASGrad  - mutlipoint
       gradient drawing.  ASFlip  - image loading from file and rotation.  ASText  - trexturized semitransparent
       antialised text drawing.

SEE ALSO

       API Reference
       libAfterImage/API Reference

CHILDREN

       Headers :
                ascmap.h asfont.h asimage.h asvisual.h blender.h export.h
                import.h transform.h ximage.h Structures :
                ColorPair
                ASScanline
                ASVisual
                ASImage
                ASImageManager
                ASImageBevel
                ASImageDecoder
                ASImageOutput
                ASImageLayer
                ASGradient
                ASFontManager
                ASFont
                ASGlyph
                ASGlyphRange
                ASColormap
                ASImageExportParams
                ASVectorPalette

       Functions :
         ASScanline handling:
               prepare_scanline(), free_scanline()

         ASVisual initialization :
               query_screen_visual(), setup_truecolor_visual(),
               setup_pseudo_visual(), setup_as_colormap(),
                create_asvisual(), create_asvisual_for_id(),
               destroy_asvisual()

         ASVisual encoding/decoding :
               visual2visual_prop(), visual_prop2visual()

         ASVisual convenience functions :
               create_visual_window(), create_visual_pixmap(),
               create_visual_ximage(), create_visual_gc()

         Colorspace conversion :
                rgb2value(), rgb2saturation(), rgb2hue(), rgb2luminance(),
                rgb2hsv(), rgb2hls(), hsv2rgb(), hls2rgb(),
                degrees2hue16(), hue162degrees(), normalize_degrees_val()

         Image quantization :
                colormap_asimage(), destroy_colormap()

         merge_scanline methods :
                alphablend_scanlines(), allanon_scanlines(),
                tint_scanlines(), add_scanlines(), sub_scanlines(),
                diff_scanlines(), darken_scanlines(), lighten_scanlines(),
                screen_scanlines(), overlay_scanlines(), hue_scanlines(),
                saturate_scanlines(), value_scanlines(),
                colorize_scanlines(), dissipate_scanlines().

         ASImage handling :
                asimage_init(), asimage_start(), create_asimage(),
                clone_asimage(), destroy_asimage()

         ASImage channel data manipulations :
                get_asimage_chanmask(), move_asimage_channel(),
                copy_asimage_channel(), copy_asimage_lines()

         ImageManager Reference counting and managing :
                create_image_manager(), destroy_image_manager(),
                store_asimage(), fetch_asimage(), dup_asimage(),
                release_asimage(), release_asimage_by_name()

         Layers helper functions :
                init_image_layers(), create_image_layers(),
                destroy_image_layers()

         Encoding :
                asimage_add_line(),    asimage_add_line_mono(),
                asimage_print_line()

         Decoding :
                start_image_decoding(), stop_image_decoding(),
                asimage_decode_line (), set_decoder_shift(),
                set_decoder_bevel_geom(), set_decoder_back_color()

         ASImage from scientific data :
                set_asimage_vector(), colorize_asimage_vector(),
                create_asimage_from_vector()

         Output :
                start_image_output(), set_image_output_back_color(),
                toggle_image_output_direction(), stop_image_output()

         X11 conversions :
                ximage2asimage(), pixmap2asimage(), asimage2ximage(),
                asimage2mask_ximage(), asimage2pixmap(), asimage2mask()

         Transformations :
                scale_asimage(), tile_asimage(), merge_layers(),
                   make_gradient(),
                flip_asimage(), mirror_asimage(), pad_asimage(),
                blur_asimage_gauss(), fill_asimage(), adjust_asimage_hsv()

         Import :
                file2ASImage(), file2pixmap()
         Export :
               ASImage2file()

         Text Drawing :
                create_font_manager(), destroy_font_manager(),
                open_freetype_font(), open_X11_font(), get_asfont(),
                release_font(), print_asfont(), print_asglyph(),
                draw_text(), draw_fancy_text()