SEARCH
NEW RPMS
DIRECTORIES
ABOUT
FAQ
VARIOUS
BLOG

BotDetect - Real-Time Bot Detection API
 
 

MAN page from Other AfterStep-2.2.2-20060804.i386.rpm

afterimage

Section: AfterStep X11 window manager (1)
Updated: AfterStep v.2.2.2
Index 

NAME

afterimage - overview of libAfterImage image librarylibAfterImage/libAfterImage 

NAMElibAfterImage

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

 

PURPOSE

libAfterImage is the imaging library implemented for AfterStepX Window Manager. It has been generalized to be suitable for anyapplication in need of robust graphics engine.It provides facilities for loading images from files of differentformats, compressed in memory storage of images, scaling,tinting/shading, flipping and superimposition of arbitrary number ofimages over each other. In addition it allows for linear gradientsdrawing, and antialiased/smoothed text drawing using both  FreeTypelibrary and X Window fonts.Primary goals of this library are to achieve exceptional quality ofimages and text, making code fast and small at the same time.Additional steps are taken to compensate for screen colordepthlimitation, and different error diffusion algorithms are used toprovide for smooth images even in low colordepth modes.
 

HISTORY

libAfterImage has been implemented as an attempt to address severalissues. First one, and most important is that X Window Systemcompletely lacks any tools for image manipulation, except for veryrudimentary operations. With Introduction of Render extentions inXFree86 4.0 that situation is changing, but still is far fromperfect. There need is therefore to implement client side imagemanipulation. That inturn creates a problem of image data transferbetween 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 somein-memory compression.On the other side there is an image quality issue. Its easy to writea scaling function by simply dropping out or duplicating pixels,but quality is awfull. What is needed is very fastaveraging/interpolation code. That brings us to the issue of 8 bitsper channel. Add two pixels together and you get overflow. So all themath has to be performed in different colorspace and then convertedback. 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 justas well. Native X fonts look ugly as soon as you try to show anydecently sized text. That is supposed to be solved with said Renderextensions to XFree86, but as experiense has shown, things aren't aseasy as it looks, besides one wants his app to run well under any XServer. FreeType library provides a solution, but not alwaysavailable. Another problem is that if you keep all your images on theclient side, you want to draw text on client side as well.The solution is to provide transparent interface that could use bothX fonts and FreeType, cache glyphs on the client side and possiblyperform 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 colormanagement, transfer of data to and from X Server, and other screenrelated stuff.2. Scanline handling facility via ASScanline. ASScanline is the mostwidely used structure since image handling is implemented onper-scanline basis.3. Image storage, trasformation and rendering via ASImage. ASImageprovides for generic container used for any image or textmanipulation. It incorporates such a robust facilities as in-memoryRLE 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 whattype of font is used. Any font supported by X11 and FreeType can beused.5. Transparent image file reading for many different formats. Includedbuilt-in XPM reading code and XCF ( GIMP's native format ).Overall supported:via external libraries :XPM, JPEG, PNG, TIFF, GIFvia built in code :XPM, XCF, PNM, PPM, BMP, ICO, CURNote 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 extention 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 isconinient for such thing as web development. XML Image manipulationtool, that could be used in such activity is included (see ascompose.c)9. Image reference counting
 

USES

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

SEE ALSO

ExamplesAPI Reference
 

TODO

Implement support for Targa and PCX image format and maybe some otherformats as well.Implement complete support for I18N internationalization.Implement color<->pixel conversion for all colordepths.
 

AUTHOR

Sasha Vasko <sasha at aftercode dot net>
 

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
 

CHILDREN

Headers :         ascmap.h asfont.h asimage.h asvisual.h blender.h export.h         import.h transform.h ximage.hStructures :         ColorPair         ASScanline         ASVisual         ASImage         ASImageManager         ASImageBevel         ASImageDecoder         ASImageOutput         ASImageLayer         ASGradient         ASFontManager         ASFont         ASGlyph         ASGlyphRange         ASColormap         ASImageExportParams         ASVectorPaletteFunctions :  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()


 

Index

NAME
NAMElibAfterImage
PURPOSE
HISTORY
DESCRIPTION
USES
SEE ALSO
TODO
AUTHOR
EXAMPLE
SEE ALSO
CHILDREN

This document was created byman2html,using the manual pages.
 
ICM Bot detect detector