2014-06-03 01:10:08 +00:00
|
|
|
GIFLIB NEWS
|
|
|
|
|
|
|
|
Short summary of recent news:
|
|
|
|
Minor API change to assist library wrappers in dynamic languages.
|
|
|
|
The gif2raw utility has been removed.
|
|
|
|
Various minor fix patches for unusual edge cases.
|
|
|
|
|
|
|
|
Version 5.1.0
|
|
|
|
=============
|
|
|
|
|
|
|
|
Changes to the API require a library major-version bump.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
|
|
|
|
* A small change to the API: DGifClose() and EGifClose() now take a
|
|
|
|
pointer-to-int second argument (like the corresponding openers)
|
|
|
|
where a diagnostic code will be deposited when they return
|
|
|
|
GIF_ERROR. This replaces the old behavior in which the GifFile
|
|
|
|
structure was left unfreed so the Error member in it could be filled
|
|
|
|
and remain available. The change was was required because it's
|
|
|
|
not always possible to free the struct afterwards. Case in point is
|
|
|
|
a C# wrapper for giflib (or any language/environment where you can't
|
|
|
|
just free objects allocated in a foreign shared library.)
|
|
|
|
|
|
|
|
* Minor fix for SF bug #56; BitsPerPixel may be left as uninitialized
|
|
|
|
value when reading (truncated) gif.
|
|
|
|
|
|
|
|
* Applied SF patch #17: Use a fallback on Windows where mkstemp is not
|
|
|
|
available.
|
|
|
|
|
|
|
|
* Applied SF patch #15: Code hardening, preventing spurious
|
|
|
|
defective-image messages.
|
|
|
|
|
|
|
|
Retirements
|
|
|
|
-----------
|
|
|
|
|
|
|
|
* Removed gif2raw from utils. Its blithe assumption that the EGA16
|
|
|
|
palette is a reliable default is now about 20 years obsolete. Format
|
|
|
|
conversion is better done with convert(1) from the ImageMagick suite,
|
|
|
|
anyway.
|
|
|
|
|
|
|
|
Version 5.0.6
|
|
|
|
=============
|
|
|
|
|
|
|
|
Minor fix for a rare memory leak (SF bug #55).
|
|
|
|
|
|
|
|
MinGW port fixes.
|
|
|
|
|
|
|
|
Repair the internal quantization function used in gif2rgb so it's
|
|
|
|
less vulnerable to cross-platform skew due to qsort() being unstable.
|
|
|
|
This shouldn't affect production use, it's just a cross-platform
|
|
|
|
issue for regression testing
|
|
|
|
|
|
|
|
Version 5.0.5
|
|
|
|
=============
|
|
|
|
|
|
|
|
Set the error return properly when a screen descriptor read fails.
|
|
|
|
Fixes for some minor API documentation bugs. Some internal manual
|
|
|
|
pages are not to be installed.
|
|
|
|
|
|
|
|
Version 5.0.4
|
|
|
|
=============
|
|
|
|
|
|
|
|
Fix for a rare misrendering bug when a GIF overruns the decompression-code
|
|
|
|
table. The image on which this was spotted was a relatively long-running
|
|
|
|
animated GIF; still images of ordinary size should have been immune.
|
|
|
|
|
|
|
|
Version 5.0.3
|
|
|
|
=============
|
|
|
|
|
|
|
|
Fix a build-system glitch so it will install manpages.
|
|
|
|
|
|
|
|
Version 5.0.2
|
|
|
|
=============
|
|
|
|
|
|
|
|
Documentation and polish
|
|
|
|
------------------------
|
|
|
|
* Partial build is now possible on systems without xmlto.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
* Change unused return of EGifSetGifVersion() to void.
|
|
|
|
* Buffer overrun prevention in gifinto.
|
|
|
|
|
|
|
|
Version 5.0.1
|
|
|
|
=============
|
|
|
|
|
|
|
|
Documentation and polish
|
|
|
|
------------------------
|
|
|
|
* There is now an installable manual page for the GIFLIB utility kit.
|
|
|
|
|
|
|
|
Retirements
|
|
|
|
-----------
|
|
|
|
* gifinter is gone. Use convert -interlace from the ImageMagic suite.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
* In 5.0.0 the private gif89 bit wasn't being guaranteed cleared at
|
|
|
|
the beginning of EGifGetGifVersion(); this occasionally led to an
|
|
|
|
incorrect version prefix being issued dependent on the state of
|
|
|
|
malloced memory.
|
|
|
|
* An EGifSetGifVersion() function taking a GifFile argument has been
|
|
|
|
added for use with the low-level sequential API. This change requires
|
|
|
|
a bump of the library revision number.
|
|
|
|
|
|
|
|
Version 5.0.0
|
|
|
|
=============
|
|
|
|
|
|
|
|
Changes to the API require a library major-version bump. Certain
|
|
|
|
initialization functions have acquired an integer address argument for
|
|
|
|
passing back an error code, in order to avoid thread-unsafe static
|
|
|
|
storage. Application code using extension blocks will require minor
|
|
|
|
changes. A few functions have been renamed.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
* Fixes applied for CVE-2005-2974 and CVE-2005-3350
|
|
|
|
This closes Debian bug #337972.
|
|
|
|
|
|
|
|
New API Features
|
|
|
|
----------------
|
|
|
|
|
|
|
|
Thread Safety
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
The library is now completely re-entrant and thread-safe.
|
|
|
|
|
|
|
|
* Library error handling no longer uses a static cell to store the last
|
|
|
|
error code registered; that made the library thread-unsafe. For functions
|
|
|
|
other than GIF file openers, the code is now put in an Error member of
|
|
|
|
the GifFileType structure. The GifError() amd GifLastError() functions
|
|
|
|
that referenced that static cell are gone, and the GifErrorString()
|
|
|
|
function introduced in the 4.2 release now takes an explicit error code
|
|
|
|
argument.
|
|
|
|
* GIF file openers - DGifOpenFileName(), DGifOpenFileHandle(), DGifOpen(),
|
|
|
|
EGifOpenFileName(), EGifOpenFileHandle(), and EGifOpen() - all now take
|
|
|
|
a final integer address argument. If non-null, this is used to pass
|
|
|
|
back an error code when the function returns NULL.
|
|
|
|
|
|
|
|
Extensions
|
|
|
|
~~~~~~~~~~
|
|
|
|
The ExtensionBlock API has been repaired, solving some problems with GIF89
|
|
|
|
extension handling in earlier versions.
|
|
|
|
|
|
|
|
* DGifSlurp() and EGifSpew() now preserve trailing extension blocks with
|
|
|
|
no following image file.
|
|
|
|
* Three documented functions - EGifPutExtensionFirst(), EGifPutExtensionNext(),
|
|
|
|
and EGifPutExtensionLast() - have been relaced by new functions
|
|
|
|
EGifPutExtensionLeader(), EGifPutExtensionBlock(), and
|
|
|
|
EGifPutExtensionTrailer(). See the Compatibility section of
|
|
|
|
the library API documentation for details.
|
|
|
|
* New functions DGifSavedExtensionToGCB() and EGifGCBToSavedExtension()
|
|
|
|
make it easy to read and edit GIF89 graphics control blocks in saved images.
|
|
|
|
|
|
|
|
Namespacing
|
|
|
|
~~~~~~~~~~~
|
|
|
|
All functions exported by giflib now have DGif, EGif, or Gif as a name prefix.
|
|
|
|
|
|
|
|
* Three documented functions - MakeMapObject(), FreeMapObject(), and
|
|
|
|
UnionColorMap() - have been renamed to GifMakeMapObject(),
|
|
|
|
GifFreeMapObject(), and GifUnionColorMap() respectively.
|
|
|
|
* The library Draw* functions are now prefixed GifDraw*, and the
|
|
|
|
text-drawing ones are suffixed with "8x8". This fixes a conflict
|
|
|
|
with the Windows API and leaves the door open for more general text-drawing
|
|
|
|
functions with different font sizes.
|
|
|
|
|
|
|
|
Other changes
|
|
|
|
~~~~~~~~~~~~~
|
|
|
|
* DGifSlurp() and EGifSpew() now read and write interlaced images properly.
|
|
|
|
* The amazingly obscure colormap sort flag and pixel aspect ratio
|
|
|
|
features of GIF are now read and preserved, for whatever good that
|
|
|
|
may do.
|
|
|
|
* Six undocumented functions have been renamed; five of these take additional
|
|
|
|
or slightly different argument types. See the Compatibility section of
|
|
|
|
the library API documentation for details.
|
|
|
|
* There's now an EGifGetGifVersion() that computes the version EGifSpew()
|
|
|
|
will write.
|
|
|
|
* QuantizeBuffer() has been returned to the core library as GifQuantizeBuffer()
|
|
|
|
- turns out some important applications (notably mplayer) were using it.
|
|
|
|
* TRUE and FALSE macros are gone, also VoidPtr. No more namespace pollution.
|
|
|
|
* Various arguments have been made const where possible.
|
|
|
|
|
|
|
|
Retirements
|
|
|
|
-----------
|
|
|
|
* The (undocumented) gifinfo utility is gone. Use giftool -f instead.
|
|
|
|
* The gifburst utility is gone. Everybody has image viewers that
|
|
|
|
can pan now, and removing it gets rid of a dependency on Perl.
|
|
|
|
* gifcompose is gone. It was a decent idea when I wrote it in 1989,
|
|
|
|
but I did the same thing better and cleaner a decade later with
|
|
|
|
PILdriver in the PIL package. Removing it gets rid of a dependency
|
|
|
|
on shell.
|
|
|
|
* gif2x11 gifasm, gifcomb, gifflip, gifovly, gifpos, gifresize, and gifrotate
|
|
|
|
are all gone. The ImageMagick display(1)/convert(1) utilities and PILdriver
|
|
|
|
do these things better and in a format-independent way.
|
|
|
|
* Lennie Araki's Windows C++ wrapper is gone. It's eight years old,
|
|
|
|
unmaintained, he has dropped out of sight, and a better one needs to
|
|
|
|
be written to use the high-level GIFLIB API and GIF89 graphics
|
|
|
|
control extension support. We'll carry such a wrapper when we have
|
|
|
|
a maintainer for it.
|
|
|
|
* EGifSetVersion(), introduced in 4.2, is gone. The library always
|
|
|
|
writes GIF87 or GIF89 as required by the data. This change helps
|
|
|
|
with thread safety.
|
|
|
|
|
|
|
|
Utilities
|
|
|
|
---------
|
|
|
|
* Several utilities have been renamed to (a) fix last-century's habit
|
|
|
|
of arbitarily smashing vowels out of names to make them just one or two
|
|
|
|
characters shorter, (b) ensure that every utility in this set has 'gif'
|
|
|
|
as a name prefix. Here's the list:
|
|
|
|
|
|
|
|
giffiltr -> giffilter
|
|
|
|
gifspnge -> gifsponge
|
|
|
|
icon2gif -> gifbuild
|
|
|
|
text2gif -> gifecho
|
|
|
|
raw2gif -> gif2raw
|
|
|
|
|
|
|
|
* To go with its new name, gif2raw now dumps raw pixels from a GIF if the
|
|
|
|
(previously required) size option is missing.
|
|
|
|
* Standalone rgb2gif is gone; the same capability is now a mode of gif2rgb.
|
|
|
|
* giftext displays the parsed contents of GIF89 graphics control blocks.
|
|
|
|
* gifbuild handles GIF89 graphics control blocks and Netscape animation
|
|
|
|
loop blocks; it can can display and update either.
|
|
|
|
* gifrotate and other filter utilities now preserve extension blocks,
|
|
|
|
including the graphics control information for transparency and delay time.
|
|
|
|
* A new utility, giftool, supports a wide variety of filtering operations
|
|
|
|
on GIFs, including: setting background and transparency colors, changing
|
|
|
|
interlacing, setting image delays, setting the user-input flag, and setting
|
|
|
|
the aspect-ratio byte. It can sequence multiple operations.
|
|
|
|
* The test-pattern generators gifbg, gifcolor, gihisto and gifwedge and the
|
|
|
|
code templates giffilter and gifsponge are no longer installed by default.
|
|
|
|
|
|
|
|
Documentation and polish
|
|
|
|
------------------------
|
|
|
|
* The history.txt and build.txt and files from 4.2.0 now have .asc extensions
|
|
|
|
to indicate that they use asciidoc markup, contrasting with the txt
|
|
|
|
standards files from CompuServe.
|
|
|
|
* The documentation now includes "What's In A GIF", a very detailed narrative
|
|
|
|
description of the file format.
|
|
|
|
* The -A option of gifasm (for inserting a loop control block) is documented.
|
|
|
|
* The documentation directory includes a copy of the original GIF87
|
|
|
|
specification as well as GIF89's.
|
|
|
|
* The project now has a logo.
|
|
|
|
|
|
|
|
Version 4.2.0
|
|
|
|
=============
|
|
|
|
|
|
|
|
Now maintained by ESR again after handoff by Toshio Kuratomi.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
* Code updated internally to C99 to enable more correctness checks by
|
|
|
|
the compiler. Compiles under GCC 4.6.1 without errors or warnings.
|
|
|
|
* A rare resource leak in the colormap-object maker was found with
|
|
|
|
Coverity and fixed.
|
|
|
|
* The code now audits clean under Coverity and cppcheck.
|
|
|
|
* splint cleanup begun, there's a lot of work still to do on this.
|
|
|
|
|
|
|
|
New API Features
|
|
|
|
----------------
|
|
|
|
* The default GIF version to write is now computed at write time from
|
|
|
|
the types of an image's extension blocks, but can be overridden with
|
|
|
|
EGifSetGifVersion().
|
|
|
|
* EGifSpew() is now thread-safe.
|
|
|
|
* Two new functions, GifError() and GifErrorString(),
|
|
|
|
return the error state in a form that can be used by programs.
|
|
|
|
* Two library functions - EGifOpenFileName() and EGifPutImageDesc() -
|
|
|
|
now have bool rather than int flag arguments. Since bool is a
|
|
|
|
typedef of int and TRUE/FALSE have been redefined to true/false,
|
|
|
|
both source and object compatibility with older library versions
|
|
|
|
should be preserved.
|
|
|
|
* GAGetArgs(), used only in the utilities, now returns bool rather
|
|
|
|
than int.
|
|
|
|
* The undocumented GIF_LIB_VERSION symbol is gone from the library header.
|
|
|
|
It has been replaced with three documented symbols: GIFLIB_MAJOR,
|
|
|
|
GIFLIB_MINOR, and GIFLIB_RELEASE.
|
|
|
|
|
|
|
|
Retirements
|
|
|
|
-----------
|
|
|
|
* The gif2epsn and gif2iris utilities are gone. They were full of
|
|
|
|
platform dependencies for platforms long dead. There are enough
|
|
|
|
platform-independent GIF viewers in the world that these weren't
|
|
|
|
adding any value. Removing these gets rid of a dependency on GL.
|
|
|
|
* The rle2gif, gif2rle, and gif2ps utilities are also gone. There are enough
|
|
|
|
multiformat image converters in the world that these weren't adding
|
|
|
|
any value either. Removing them reduces the codebase's dependencies.
|
|
|
|
* The undocumented DumpScreen2Gif() is gone from the library. The
|
|
|
|
only non-obsolete capture mode it supported was through X, and that
|
|
|
|
probably hasn't been used in years and is replaceable by any number
|
|
|
|
of capture utilities. Dropping this code makes the library's
|
|
|
|
portability issues go away.
|
|
|
|
* QuantizeBuffer(), GifQprintf(), PrintGifError(), GIF_ERROR()
|
|
|
|
and GIF_MESSAGE() have been removed from the core library.
|
|
|
|
They were used only by the utilities. QuantizeBuffer() has been
|
|
|
|
inlined where it was used and the latter three are now part of the
|
|
|
|
utility support library.
|
|
|
|
* The Game Boy Advanced test code is gone. The platform was discontinued
|
|
|
|
in 2008; more to the point, nobody ever documented the code's assumptions
|
|
|
|
or expected results.
|
|
|
|
* The Changelog file is now retained for archival purposes only, and because
|
|
|
|
autotools throws a hissy fit if there isn't one. The single point of
|
|
|
|
truth about changes and the reasons for them is the repository history.
|
|
|
|
|
|
|
|
Behavior changes
|
|
|
|
----------------
|
|
|
|
* The -q option of the utilities is replaced by an opposite -v (verbose)
|
|
|
|
option; the default is now quiet for all platforms. Defaulting to chattiness
|
|
|
|
on MSDOS made sense in a world of slow text consoles, but not today.
|
|
|
|
|
|
|
|
Testing
|
|
|
|
-------
|
|
|
|
* There is now a proper regression-test suite; run 'make' in tests/.
|
|
|
|
The old test-unx script is now tests/visual-check and can be run
|
|
|
|
occasionally for a check with the Mark One Eyeball.
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
-------------
|
|
|
|
* Build instructions now live in build.txt
|
|
|
|
* An overview of the giflib API now lives in api.txt.
|
|
|
|
* Documentation is now in DocBook-XML, so either HTML or man pages can
|
|
|
|
be generated from it.
|
|
|
|
|
2011-01-16 12:21:09 +00:00
|
|
|
Version 4.1.6
|
|
|
|
=============
|
|
|
|
Brown paper bag release. Fix a problem with header inclusion that could
|
|
|
|
prevent the library from building on some platforms.
|
|
|
|
|
|
|
|
Version 4.1.5
|
|
|
|
=============
|
|
|
|
This version has some important fixes for segfaults when working with corrupt
|
|
|
|
files. All users are strongly encouraged to upgrade.
|
|
|
|
|
|
|
|
Code Fixes
|
|
|
|
----------
|
|
|
|
* Fix segfault in utilities due to referencing ColorMaps in GifFiles that had
|
|
|
|
no ColorMap present.
|
|
|
|
* Fix gif2x11 to work on 24 bit displays.
|
|
|
|
* Fix for giftext segfault when the GifFile does not store a global colormap.
|
|
|
|
* Checks to fail gracefully when an image contains improper LZ codes.
|
|
|
|
* Close file handles on failure in DGifOpenFileHandle()
|
|
|
|
* Checks to operate on files in binary mode on WIN32 as well as MSDOS.
|
|
|
|
|
|
|
|
Building
|
|
|
|
--------
|
|
|
|
* Add checks to make building on Win32 easier.
|
|
|
|
* Allow turning off gl_s, rle, and X11 support from the configure command line.
|
|
|
|
* Fix for finding a 32 bit integer type on some platforms.
|
|
|
|
* Only enable -Wall if we're using gcc.
|
|
|
|
|
|
|
|
Version 4.1.4
|
|
|
|
=============
|
|
|
|
This version fixes some bugs with deallocating ColorMaps. Fix building on
|
|
|
|
several platforms. Fix x86_64 builds to not hang the encoder.
|
|
|
|
|
|
|
|
* Fix several areas in decoding where we removed a ColorMap from our GifFile
|
|
|
|
but didn't set the pointer to NULL. This could lead to double free's of
|
|
|
|
the ColorMap.
|
|
|
|
* Fix a bug in dev2gif.c where we redefined some gl types incorrectly.
|
|
|
|
* Fix a bug in the gif LZW encoder that was triggered on modern 64 bit
|
|
|
|
platforms.
|
|
|
|
* Fix building on Windows. Note -- there has been one API changing event for
|
|
|
|
Windows (renaming DrawText to DrawGifText.) This should have conflicted with
|
|
|
|
Windows API and therefore caused the builds to fail previously. If you had
|
|
|
|
it working with DrawText before, apologies, you'll need to change to
|
|
|
|
DrawGifText in your code. This only affects Windows.
|
|
|
|
* Add support for building on The Game Boy Advance. Note: Due to the GBA's
|
|
|
|
limited memory, the API for the GBA uses short's in many places where the
|
|
|
|
other platforms use ints. This shouldn't affect anyone unless you've
|
|
|
|
been able to get an older version of the code to run on GBA and want to
|
|
|
|
start using this version instead. A recompile of your dependent code
|
|
|
|
will be necessary in this case.
|
|
|
|
|
|
|
|
Version 4.1.3
|
|
|
|
=============
|
|
|
|
This version fixes some bugs in the Extension writing code in
|
|
|
|
EGifPutExtensionFirst, Next, and Last. Using these functions, it is possible
|
|
|
|
to output extensions that contain multiple subblocks. Additionally, library
|
|
|
|
code has been updated to use these functions, making it safe to output
|
|
|
|
long Comments, and multi-block extensions read in from another file.
|
|
|
|
|
|
|
|
* giflib is now hosted on sourceforge with libungif:
|
|
|
|
http://sourceforge.net/projects/libungif
|
|
|
|
* Make the EGifPutExtension{First,Next,Last} family of functions use WRITE
|
|
|
|
so user defined WRITE methods will output them correctly.
|
|
|
|
* Modify EGifSpew and EGifPutComment to use EGifPutExtension{First,Next,Last}
|
|
|
|
so we won't output broken GIFs when dealing with GIFs with multiple
|
|
|
|
subblocks.
|
|
|
|
* More -Wall fixes revealed while testing on Solaris and FreeBSD.
|
|
|
|
* Updated the gif_lib.html documentation to not use EGifPutExtension when
|
|
|
|
dealing with multiple subblocks. Use EGifPutExtension{First,Next,Last}
|
|
|
|
instead.
|
|
|
|
* Some Windows code from the old CVS repository now available in the windows
|
|
|
|
subdirectory. I don't have a Windows environment to test and maintain this
|
|
|
|
but maybe someone out there will find it useful. Caveat hacker.
|
|
|
|
|
|
|
|
Version 4.1.2
|
2014-06-03 01:10:08 +00:00
|
|
|
=============
|
2011-01-16 12:21:09 +00:00
|
|
|
* Numerous bug fixes from people on the old libungif mailing list.
|
|
|
|
* GIF_ERROR and GIF_MESSAGE are on the deprecation list as they are also
|
|
|
|
utility helper functions rather than essential to the functioning of the
|
|
|
|
library.
|
|
|
|
* Complete deprecation list is now in the README file
|
|
|
|
* Audited the sources with gcc -Wall. Everything detectable has now been fixed.
|
|
|
|
* Ran the library code through indent.
|
2014-06-03 01:10:08 +00:00
|
|
|
|
2011-01-16 12:21:09 +00:00
|
|
|
Version 4.1.1
|
|
|
|
=============
|
|
|
|
* Merge in many bug fixes that were sent in while I was hiking the
|
|
|
|
Appalachian Trail.
|
2014-06-03 01:10:08 +00:00
|
|
|
* The qprintf methods of the library are now deprecated. Do not use
|
2011-01-16 12:21:09 +00:00
|
|
|
GifQuietPrint or GifQprintf. These should have been pushed out into the
|
|
|
|
utility helper library instead of sitting around in the library proper at
|
|
|
|
the same time as the getarg functions were moved out. Getting rid of these
|
|
|
|
will let us get rid of our dependence on stdarg.h/varargs.h (Which a Gif
|
|
|
|
reading library has no business requiring.)
|
|
|
|
|
|
|
|
Version 4.1.0
|
2014-06-03 01:10:08 +00:00
|
|
|
=============
|
2011-01-16 12:21:09 +00:00
|
|
|
* Several minor memory leaks in error conditions have been plugged.
|
|
|
|
* New Function EGifOpen(void *userData, OutputFunc writeFunc) allows user
|
|
|
|
specified gif writing functions.
|
|
|
|
* Old copyright notices in a few source files have been updated. All library
|
|
|
|
copyrights should now reflect the copyright notice in the COPYING file.
|
|
|
|
|
|
|
|
Version 4.0.0 -- giflib
|
|
|
|
=======================
|
|
|
|
This version of the giflib library merges Eric Raymond's giflib-3.0 release
|
|
|
|
with the libungif-4.0 release to give people a binary compatible choice
|
|
|
|
between the two libraries and gives me the chance to add bugfixes to giflib
|
|
|
|
that have been incorporated in libungif.
|
|
|
|
|
|
|
|
PLEASE READ THE FILE PATENT_PROBLEMS BEFORE USING THIS LIBRARY!
|
|
|
|
|
|
|
|
Version 4.0.0
|
|
|
|
=============
|
|
|
|
Major fixes have been made to the code that handles Extensions.
|
|
|
|
Unfortunately, this causes binary incompatibility with giflib-3.0 and
|
|
|
|
libungif-3.x. However, the API is still intact. I am, however, deprecating
|
|
|
|
the use of saveImage[x].Function. Use
|
|
|
|
saveImage[x].ExtensionBlocks[y].Function instead.
|
|
|
|
|
|
|
|
Version 3.1.1
|
|
|
|
=============
|
|
|
|
The following bugs which caused SegFaults have been fixed:
|
|
|
|
* When reading gif files with extensions, DGifSlurp would violate memory.
|
|
|
|
* When closing a gif that had a local colormap, DGifCloseFile would attempt
|
|
|
|
to free the colormap twice.
|
|
|
|
* Fix a potential memory leak in DGifSlurp.
|
|
|
|
* New function DGifOpen to allow specifying a user definable gif reading
|
|
|
|
function.
|
|
|
|
|
|
|
|
Version 3.1.0
|
|
|
|
=============
|
|
|
|
* Add a new function:
|
|
|
|
GifFileType *DGifOpen(void * userData, InputFunc readFunc)
|
|
|
|
to read the gif image from a user defined input function.
|
|
|
|
* A few bugfixes.
|
|
|
|
|
|
|
|
Version 3.0
|
|
|
|
===========
|
|
|
|
|
2014-06-03 01:10:08 +00:00
|
|
|
Changes from Eric Raymond's libgif
|
|
|
|
----------------------------------
|
|
|
|
* A new gif encoder that makes uncompressed gifs rather than standard,
|
|
|
|
LZW-compressed gifs. This is actually the major motivating factor behind
|
|
|
|
libungif; to provide third-party distributors a means to provide a gif
|
|
|
|
library without the patented LZW encoder.
|
|
|
|
* A new configure script to make compilation of the library on multiple
|
|
|
|
platforms easier. The package should now build shared libraries on all
|
|
|
|
platforms supported by GNU libtool.
|
|
|
|
* Removed the getarg functions from libgif. These were not part of the
|
|
|
|
public API and only used by the tools in the utils directory so I separated
|
|
|
|
them from the rest of the library.
|
|
|
|
* Fixed a few bugs in the tools in the utils directory.
|
|
|
|
|
|
|
|
Version 3.0
|
|
|
|
===========
|
|
|
|
|
|
|
|
New features
|
|
|
|
------------
|
|
|
|
* Incorporated Sirtaj Kang's changes to make both static and shared libs.
|
|
|
|
* All the utility and library docs are HTML now.
|
|
|
|
* The library and relevant utilities are now fully GIF89-aware.
|
|
|
|
* Functions for drawing text and boxes on saved images are documented.
|
|
|
|
* The distribution is now issued under a simple X-Consortium-style license.
|
|
|
|
* Can now generate package RPMs and LSM automatically.
|
|
|
|
* Home page with Web-acessible documentation at http://www.ccil.org/~esr/giflib
|
|
|
|
|
|
|
|
Bug fixes
|
|
|
|
---------
|
|
|
|
* Fix giftext to not core dump on a null extension record.
|
|
|
|
* Incorporate Philip VanBaren's change to prevent a core dump in gifasm.
|
|
|
|
|
|
|
|
Version 2.3
|
|
|
|
===========
|
|
|
|
* Fixed a core-dump bug in gifcomb revealed by ELF environment in Linux 1.2.13.
|
|
|
|
|
|
|
|
Version 2.2b
|
|
|
|
============
|
|
|
|
* Added gifburst tool.
|
|
|
|
|
|
|
|
Version 2.2
|
|
|
|
===========
|
|
|
|
* Linux is supported.
|
|
|
|
|
|
|
|
Version 2.1
|
|
|
|
===========
|
|
|
|
* Added the gifovly tool, which supports making a composite from several GIF
|
|
|
|
images.
|
|
|
|
* Used gifovly to implement a full-fledged pasteup program in shell. It's
|
|
|
|
called gifcompose and lives in the util directory.
|
|
|
|
* Added a copy of the GIF89 standard to the doc directory (gif89.txt);
|
|
|
|
also a description of the preferred compression method (lzgif.txt).
|
|
|
|
|
|
|
|
Version 2.0
|
|
|
|
===========
|
|
|
|
With this version, development was taken over from Gershon Elber by Eric
|
|
|
|
S. Raymond <esr@snark.thyrsus.com>. Note that I, esr, have pretty much
|
|
|
|
adhered to Gershon's coding style, even though it's quite baroque and DOS-
|
|
|
|
headed by my standards.
|
|
|
|
|
|
|
|
Library Improvements
|
|
|
|
--------------------
|
|
|
|
* New DGifSlurp() and EGifSpew() library entry points allow all GIF-bashing
|
|
|
|
to be done in core on machines with sufficient memory. Writing code to
|
|
|
|
slice'n'dice multiple GIFs in non-sequential ways is now much easier (send
|
|
|
|
kudos and brickbats to esr, small unmarked bills preferred).
|
|
|
|
* The interface has changed somewhat. Members in the GifFileType structure
|
|
|
|
have been renamed and regrouped. This was required for support of the
|
|
|
|
SavedImages member (which enables the new functions mentioned in 1). Also,
|
|
|
|
there is a new data type for allocated color maps and routines to handle
|
|
|
|
it conveniently.
|
|
|
|
* Some minor bugs have been fixed. Most notably, the DGif code now correctly
|
|
|
|
handles the possibility of more than one code block per extension record,
|
|
|
|
as per the GIF spec. It's not clear, however, that anyone ever has or
|
|
|
|
ever will use this feature for anything...
|
|
|
|
|
|
|
|
New Tools and Options
|
|
|
|
---------------------
|
|
|
|
* A brand new, ultra-spiffy tool `icon2gif' is included. It assembles named
|
|
|
|
GIFs with editable text color map & icon raster representations to produce
|
|
|
|
multi-image GIFs usable as graphical resource files. It can also dump most
|
|
|
|
GIFs in the same text-only form it parses. This makes it easy to edit GIFs
|
|
|
|
even if you don't have a graphics editor.
|
|
|
|
* The gifclip utility supports a new `-c' (complement) option that allows you
|
|
|
|
to perform an `inverse clip', removing horizontal or vertical bands from an
|
|
|
|
image.
|
|
|
|
* The gifclrmp utility supports a new `-t' switch for shuffling color index
|
|
|
|
values.
|
|
|
|
* A new tool `gifcolor' generates test pattern from colormap input.
|
|
|
|
|
|
|
|
New Documentation and Examples
|
|
|
|
------------------------------
|
|
|
|
* The documentation has been overhauled completely and translated out of the
|
|
|
|
dialect spoken by the estimable Mr. Elber into something like standard
|
|
|
|
English :-).
|
|
|
|
* Two source code files gifspnge.c and giffiltr.c have been added to the
|
|
|
|
util directory. These are GIF copiers that exercise the I/O routines,
|
|
|
|
provided as skeletons for your applications. Read the comments in them
|
|
|
|
for more info.
|
|
|
|
* The util Makefile for UNIX has been improved. It now uses the cc/gcc -s
|
|
|
|
option rather than strip(1). There are now separate install productions,
|
|
|
|
so you can test new versions in util before installation for production
|
|
|
|
(the top-level make script still does an install).
|
|
|
|
|
|
|
|
Version 1.2
|
|
|
|
===========
|
|
|
|
* GIFFIX - a new tool to attempt and fix broken GIF images. Currently fix
|
|
|
|
images that has EOF prematurely by padding with the darkest color.
|
|
|
|
* Make GIF2BGI display as much as it can considering the mem. avail.
|
|
|
|
* Add -q flag to all tools for quite running scan line number mode.
|
|
|
|
* Fix a (minor!?) bug in the GIF decoder when encountering code 4095.
|
|
|
|
* New tools (RGB2GIF and GIF2RGB) to convert GIF to/from 24 bits RGB images.
|
|
|
|
* New tool GIFROTAT to rotate a gif image by an arbitrary angle.
|
|
|
|
* GifRSize was updated to resize by an arbitrary factor.
|
|
|
|
|
|
|
|
Version 1.1
|
|
|
|
===========
|
|
|
|
* GIF2BGI - a new utility to display GIF images using Borland's BGI drivers
|
|
|
|
(if you have one...)
|
|
|
|
* TEXT2GIF - Converts plain text into GIF images.
|
|
|
|
* GIF2IRIS - SGI4D display program for GIF images.
|
|
|
|
* GIF_LIB naming convension has been modified to make sure it has unique
|
|
|
|
names (see gif_lib.h).
|
|
|
|
* Support for SGI4D gl and X11 window grabbing has been added to the
|
|
|
|
library. SGI4D input is quantizied into 8 bits.
|
|
|
|
Also support for EGA/VGA devices has been added as well.
|
|
|
|
see Dev2gif.c module.
|
|
|
|
* Support for the new gif89a format has been added.
|
2011-01-16 12:21:09 +00:00
|
|
|
|
|
|
|
|
|
|
|
|