|
Packit |
044de2 |
libwmf-0.2.9 Release Notes
|
|
Packit |
044de2 |
--------------------------
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Seeing as wvware.sourceforge.net seems to be dead, but libwmf is still in use
|
|
Packit |
044de2 |
and has had a bunch of security bugs reported against, and I've a history with
|
|
Packit |
044de2 |
libwmf, I'll call this libwmf 0.2.9 and merge in my (Red Hat) fixes.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
libwmf-0.2.2 Release Notes
|
|
Packit |
044de2 |
--------------------------
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
While there have been some improvements to text placement and rendering in the
|
|
Packit |
044de2 |
X and gd layers, most changes are in the configuration. (It is now possible to
|
|
Packit |
044de2 |
build libwmf without any device layers, but this has not been tested extensively
|
|
Packit |
044de2 |
and is not recommended for general use.)
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Special thanks to Bob Friesenhahn, Leonard Rosenthol, David C Sterratt and
|
|
Packit Service |
db9f23 |
Tomasz Kłoczko.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Hopefully this release will build on Solaris. My apologies to everyone who had
|
|
Packit |
044de2 |
problems with libwmf-0.2.1.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
libwmf-0.2.1 Release Notes
|
|
Packit |
044de2 |
--------------------------
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
In adherence with the ancient philosophy of `It's my birthday and I'll release
|
|
Packit |
044de2 |
if I want to,' today, August 22nd 2001, sees the release of libwmf-0.2.1,
|
|
Packit |
044de2 |
a.k.a. `The Inspector General's Nose'.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
I was, in fact, tempted to call it version 0.3.0, but I've been calling it
|
|
Packit |
044de2 |
0.2.1 for so many preview snapshots that, well, to do otherwise now would seem
|
|
Packit |
044de2 |
like a betrayal.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
The most significant change is the introduction of redirectable character
|
|
Packit |
044de2 |
output streams (i.e., wmfStream) which should facilitate the writing of WMF
|
|
Packit |
044de2 |
importers. - Speaking of which, CVS sodipodi now has optional support for
|
|
Packit |
044de2 |
importing WMF, requiring libwmf-0.2.1, and an importer for AbiWord is in the
|
|
Packit |
044de2 |
works.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
This has, however, necessitated a slight change in the API, and people who use
|
|
Packit |
044de2 |
libwmf in conjuction with wv will need to upgrade to wv-0.7.0 or later.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Other significant changes are support for a ghostscript-style fontmap and the
|
|
Packit |
044de2 |
beginnings of doxygen-generated documentation (which will grow more complete
|
|
Packit |
044de2 |
with future releases).
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Otherwise, there has been considerable clean-up, bug-fixes and improvement of
|
|
Packit |
044de2 |
both the source and the build system, and some additional functionality,
|
|
Packit |
044de2 |
including:
|
|
Packit |
044de2 |
(a) The .fig export uses scaling now, and has options to save images as PNG
|
|
Packit |
044de2 |
or JPEG.
|
|
Packit |
044de2 |
(b) The .svg export now supports inline (data URI) images and compression to
|
|
Packit |
044de2 |
.svgz (plus sodipodi-specific workarounds).
|
|
Packit |
044de2 |
(c) Use of metafile size info., if any (a mixed blessing).
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Special thanks to:
|
|
Packit |
044de2 |
(a) Matej Vila, for helping to make libwmf more Debian-friendly;
|
|
Packit |
044de2 |
(b) Michael Cree, for helping me to get libwmf working on Tru64;
|
|
Packit |
044de2 |
(c) Steve Oney, whose help I have not yet done justice to...
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Thanks also to: Bob Friesenhahn, Michal Jaegermann, Anil Madhavapeddy,
|
|
Packit |
044de2 |
Jacqueline Signore, Shuang Wang, Sean Young, and Kees Zeelenberg.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Finally, having just assumed the mantle of maintainership, I would like to
|
|
Packit |
044de2 |
take this opportunity once again to thank Martin Vermeer for all of his work
|
|
Packit |
044de2 |
on libwmf.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Francis James Franklin <fjf@alinameridon.com> 22nd August, 2001
|
|
Packit |
044de2 |
===============================================================================
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Amendment #1
|
|
Packit |
044de2 |
------------
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
This version of libwmf is now officially part of the wvWare project, available
|
|
Packit |
044de2 |
by CVS under the module named `libwmf2'.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
I have added device layers for SVG (W3C's XML-based vector graphic format) and
|
|
Packit |
044de2 |
MVG (ImageMagick's proprietary vector graphic format); the X device layer has
|
|
Packit |
044de2 |
not been changed and I have no intention of changing it in the near future, but
|
|
Packit |
044de2 |
it works. I have also added a device layer for GNU plotutils, but currently it
|
|
Packit |
044de2 |
is only a shell, so don't use it.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
The MVG work is based on information supplied by Bob Friesenhahn who did the
|
|
Packit |
044de2 |
WMF coder for ImageMagick. (ImageMagick's WMF coder links against libwmf(1),
|
|
Packit |
044de2 |
not this version.) I am using version ImageMagick-5.3.3, and I don't know
|
|
Packit |
044de2 |
whether earlier (or later) versions will be compatible with the MVG format
|
|
Packit |
044de2 |
assumed by libwmf. In fact, I am already finding bugs, particularly with
|
|
Packit |
044de2 |
dashed lines... Also, I don't really know how to implement fonts; I suspect
|
|
Packit |
044de2 |
ImageMagick could do with some serious hacking on this point...
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Martin Vermeer has added a FIG device layer, so now there are two routes
|
|
Packit |
044de2 |
available if anyone wants to *edit* the images as vector graphics:
|
|
Packit |
044de2 |
(a) WMF->FIG for editing with xfig;
|
|
Packit |
044de2 |
(b) WMF->SVG for editing with, for example, sodipodi (best to get the *very*
|
|
Packit |
044de2 |
latest source for sodipodi; the GNOME-1.4 release and earlier are colour-
|
|
Packit |
044de2 |
blind).
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
The svg & magick device layers write all bitmap data as PNG images, using
|
|
Packit |
044de2 |
filenames provided via the device layer interface.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
The current version of the GD library subsumed within libwmf is gd-2.0.0, with
|
|
Packit |
044de2 |
my additions. This supports 24-bit colour.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
There is some documentation, but the best way to learn how to use the various
|
|
Packit |
044de2 |
the device layers is to read the source in src/convert/
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Francis James Franklin <fjf@alinameridon.com> 13th May, 2001
|
|
Packit |
044de2 |
===============================================================================
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
This is my own (i.e., unofficial) development version of libwmf which I propose
|
|
Packit |
044de2 |
as a candidate for release as (official) libwmf version 0.2.0.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Although based on Caolan's excellent libwmf, there has been an almost complete
|
|
Packit |
044de2 |
restructuring to take libwmf away from it's batch-process origins and make it
|
|
Packit |
044de2 |
as well-behaved a library as possible.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(1) The names have been changed to protect the innocent. All global / external
|
|
Packit |
044de2 |
variables have the prefix `wmf' (or, since the GD library is subsumed
|
|
Packit |
044de2 |
within libwmf, `gd'). With very few exceptions:
|
|
Packit |
044de2 |
(a) functions: wmf_function_name (...)
|
|
Packit |
044de2 |
(b) types: wmfType, or wmfType_t
|
|
Packit |
044de2 |
(c) macros: WMF_Macro (...)
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(2) It is my belief that device-layer (e.g., output) implementations should
|
|
Packit |
044de2 |
not need to know anything about wmf files or the interpreter's methods.
|
|
Packit |
044de2 |
In addition, the writing of such device-layers should be made as simple
|
|
Packit |
044de2 |
as possible, though not of course at the expense of image fidelity or
|
|
Packit |
044de2 |
quality.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
As such, I have crafted a new interface between the interpreter and the
|
|
Packit |
044de2 |
device layer, which I choose to call the `ipa' (as opposed to the `api'
|
|
Packit |
044de2 |
which is the `application / program interface'). There must also be an
|
|
Packit |
044de2 |
interface between the application and the device layer, but this third
|
|
Packit |
044de2 |
interface is independent of the interpreter.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Although this may sound unnecessarily complicated, in fact it makes
|
|
Packit |
044de2 |
programming applications or device layers significantly easier.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(3) With very few exceptions, all function calls refer to a variable of type
|
|
Packit |
044de2 |
`wmfAPI' which incorporates all data associated with a given wmf file.
|
|
Packit |
044de2 |
A final call to wmf_api_destroy frees up all memory allocated during the
|
|
Packit |
044de2 |
initialization and processing of the metafile.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(4) (a) There is no longer any dependence on temporary files; all processing
|
|
Packit |
044de2 |
of the metafile is performed in-memory or w.r.t. original metafile.
|
|
Packit |
044de2 |
(b) Metafiles can be in-memory if desired; or applications can specify
|
|
Packit |
044de2 |
their own read/seek/tell functions for reading the metafile.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(5) (a) Xpm dependence & system calls have been removed; libwmf provides
|
|
Packit |
044de2 |
bitmap scaling functionality.
|
|
Packit |
044de2 |
(b) Bitmaps are read using code taken from ImageMagick [?? - are there
|
|
Packit |
044de2 |
licensing issues to be addressed here?]
|
|
Packit |
044de2 |
(c) libwmf now uses freetype (2) for stringwidth calculations, and is
|
|
Packit |
044de2 |
bundled with the standard thirteen ghostscript fonts [?? - are there
|
|
Packit |
044de2 |
licensing issues to be addressed here?]
|
|
Packit |
044de2 |
(d) libwmf incorporates GD (gd-1.8.4 at time of writing) which supports
|
|
Packit |
044de2 |
freetype (2), with some enhancements (filled arcs & clipping).
|
|
Packit |
044de2 |
*
|
|
Packit |
044de2 |
* libz, libpng and freetype(2) are the sole required external libraries.
|
|
Packit |
044de2 |
*
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(6) (a) The build system uses automake and libtool, and the only library
|
|
Packit |
044de2 |
created is `libwmf', which includes the eps and gd device layers and
|
|
Packit |
044de2 |
the GD library as well as the interpreter and api.
|
|
Packit |
044de2 |
(b) Header files are installed in a `libwmf' sub-directory.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
(7) I have added the wmf examples with Tor Lillqvist's plug-in for the Gimp:
|
|
Packit |
044de2 |
http://www.iki.fi/tml/gimp/wmf
|
|
Packit |
044de2 |
[?? - are there licensing issues to be addressed here?]
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Currently the only device layers are eps [eps & ps] and gd [png & jpeg].
|
|
Packit |
044de2 |
Implementing more should be relatively straight-forward. I recognize that,
|
|
Packit |
044de2 |
until device layers for X, xfig and magick exist, this proposed revision of
|
|
Packit |
044de2 |
libwmf is at a disadvantage...
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
I have tested only with PPC Linux 2000 and (x86) Linux RH7.
|
|
Packit |
044de2 |
|
|
Packit |
044de2 |
Francis James Franklin <fjf@alinameridon.com> 4th March, 2001
|
|
Packit |
044de2 |
===============================================================================
|