Commit: new image architecture

Subject: Commit: new image architecture
From: Dom Lachowicz (
Date: Fri Nov 09 2001 - 15:13:49 CST

Image architecture now models importer/exporter architecture. Everything
is 100% backwards compatible so that this won't break anything
hopefully. Compiles neatly on Unix/Gnome.

*Soon* we'll want to make our ugly code that actually includes
ie_impGraphic_XXX.h files only include ie_impGraphic.h and let that take
care of conversions automagically for us. What you'll want to do is:

1) Load the image into a UT_ByteBuf
2) Construct an importer via IE_ImpGraphic::constructImporter(bytebuf,
type, importer)
3) Call importer.importGraphic ()
4) If it's a raster graphic, getRaster_PNG(), else do the magic for
vector(SVG) graphics
5) You're done

Before, one needed to do all sorts of messiness if the graphic wasn't
being loaded from a file (i.e. an embedded graphic inside of MSWord or
RTF). NB: these importers and platform image dialogs still use this
messiness and need to be cleaned up.

From an API standpoint, this has reduced the lines of code needed now
from 20-something to like 5 and shields you from ~95% of the ugliness
that goes on behind the scenes. Another nice side-effect of this is that
new graphic formats *could* be implemented as plugins.

NB: all abiword raster graphics are represented as PNG internally
NB: all abiword vector graphics are represented as SVG internally

All registering/unregistering is done at XP level along with Textual
import/export filters, so you shouldn't have to make any changes to your


CVS: Enter Log. Lines beginning with `CVS:' are removed automatically
CVS: Committing in .
CVS: Modified Files:
CVS: src/wp/ap/beos/ap_BeOSApp.cpp src/wp/ap/mac/ap_MacApp.cpp
CVS: src/wp/ap/qnx/ap_QNXApp.cpp src/wp/ap/unix/ap_UnixApp.cpp
CVS: src/wp/ap/win/ap_Win32App.cpp src/wp/impexp/xp/ie_imp.cpp
CVS: src/wp/impexp/xp/ie_impGraphic.cpp
CVS: src/wp/impexp/xp/ie_impGraphic.h
CVS: src/wp/impexp/xp/ie_impGraphic_BMP.cpp
CVS: src/wp/impexp/xp/ie_impGraphic_BMP.h
CVS: src/wp/impexp/xp/ie_impGraphic_JPEG.cpp
CVS: src/wp/impexp/xp/ie_impGraphic_JPEG.h
CVS: src/wp/impexp/xp/ie_impGraphic_PNG.cpp
CVS: src/wp/impexp/xp/ie_impGraphic_PNG.h
CVS: src/wp/impexp/xp/ie_impGraphic_SVG.cpp
CVS: src/wp/impexp/xp/ie_impGraphic_SVG.h
CVS: src/wp/impexp/xp/ie_impGraphic_WMF.cpp
CVS: src/wp/impexp/xp/ie_impGraphic_WMF.h
CVS: src/wp/impexp/xp/ie_impexp_Register.cpp
CVS: src/wp/impexp/xp/ie_impexp_Register.h
CVS: src/wp/impexp/xp/ie_types.h

This archive was generated by hypermail 2b25 : Fri Nov 09 2001 - 15:14:49 CST