A user account is required in order to edit this wiki, but we've had to disable public user registrations due to spam.
To request an account, ask an autoconfirmed user on Chat (such as one of these permanent autoconfirmed members).
GIF: Difference between revisions
Jump to navigation
Jump to search
(→Implementations: Other implementations) |
(→Specifications: Add MathType; enumerate fractint application authentication codes) |
||
(10 intermediate revisions by 2 users not shown) | |||
Line 31: | Line 31: | ||
* https://github.com/deanm/omggif (omggif) | * https://github.com/deanm/omggif (omggif) | ||
* https://github.com/avik-das/giferly (giferly) | * https://github.com/avik-das/giferly (giferly) | ||
* http://code.google.com/p/gifdotnet/source/browse/ (gifdotnet) | |||
== References == | == References == | ||
=== Specifications === | |||
* GIF87a: [http://web.archive.org/web/20100929230301/http://www.etsimo.uniovi.es/gifanim/gif87a.txt Text] (Stanford) / [http://www.w3.org/Graphics/GIF/spec-gif87.txt Text] (W3C) | * GIF87a: [http://web.archive.org/web/20100929230301/http://www.etsimo.uniovi.es/gifanim/gif87a.txt Text] (Stanford) / [http://www.w3.org/Graphics/GIF/spec-gif87.txt Text] (W3C) | ||
* GIF89a: [http://www.w3.org/Graphics/GIF/spec-gif89a.txt Text] / [http://odur.let.rug.nl/~kleiweg/gif/GIF89a.html HTML] | * GIF89a: [http://www.w3.org/Graphics/GIF/spec-gif89a.txt Text] / [https://web.archive.org/web/20070715193723/http://odur.let.rug.nl/~kleiweg/gif/GIF89a.html HTML] | ||
* GIF Application Extensions: | |||
** <code>NETSCAPE</code> <code>2.0</code> | |||
*** [https://web.archive.org/web/20140830100320/http://odur.let.rug.nl/~kleiweg/gif/netscape.html GIF Application Extension: NETSCAPE2.0] | |||
*** [http://www.vurdalakov.net/misc/gif/netscape-looping-application-extension Netscape Looping Application Extension] | |||
*** [http://www.vurdalakov.net/misc/gif/netscape-buffering-application-extension Netscape Buffering Application Extension] | |||
** <code>ANIMEXTS</code> <code>1.0</code> | |||
*** [http://www.vurdalakov.net/misc/gif/animexts-looping-application-extension AnimExts Looping Application Extension] | |||
** <code>ICCRGBG1</code> <code>012</code> | |||
*** [http://www.color.org/icc1V42.pdf Specification ICC.1:2004-10 (Profile version 4.2.0.0) – Image technology colour management: Architecture, profile format, and data structure] (section B.6) | |||
** <code>XMP Data</code> <code>XMP</code> | |||
*** [http://wwwimages.adobe.com/www.adobe.com/content/dam/acom/en/devnet/xmp/pdfs/XMP%20SDK%20Release%20cc-2014-12/XMPSpecificationPart3.pdf XMP Specification, Part 3: Storage in Files] (section 1.1.2) | |||
** <code>fractint</code> <code>001</code> / <code>fractint</code> <code>002</code> / <code>fractint</code> <code>003</code> / <code>fractint</code> <code>004</code> / <code>fractint</code> <code>005</code> / <code>fractint</code> <code>006</code> / <code>fractint</code> <code>007</code> | |||
*** [http://fractint.net/fractsvn/trunk/fractint/common/encoder.c fractint encoder source code] | |||
*** [http://fractint.net/fractsvn/trunk/fractint/common/loadfile.c fractint decoder source code], with notes and backwards compatibility for older versions of the fractint extension blocks. All of their extension blocks have names of the form <code>fractint<var>nnn</var></code>, where <code><var>nnn</var></code> is a 3 digit block number. | |||
** <code>MathType</code> <code>001</code> / <code>MathType</code> <code>002</code> / <code>MathType</code> <code>003</code> | |||
*** [http://www.inr.ac.ru/~blackbox/MathType/SDK/docs/baseline_gif.htm MathType baseline information] | |||
*** [http://www.dessci.com/en/support/mathtype/tsn/tsn147.htm MathType: GIFs do not retain their DPI properties] - descriptions and sample images could be used to reverse engineer format | |||
=== Further details === | |||
* [[Wikipedia:GIF]] | |||
* [http://fileformats.archiveteam.org/wiki/GIF GIF File Format] | |||
* [http://www.matthewflickinger.com/lab/whatsinagif/ What's in a GIF] | * [http://www.matthewflickinger.com/lab/whatsinagif/ What's in a GIF] | ||
* [http:// | * [http://commandlinefanatic.com/cgi-bin/showarticle.cgi?article=art011 Command Line Fanatic: Inside the GIF file format] | ||
* [http://www.theimage.com/animation/toc/toc.html Gifology: Understanding GIF Files & GIF Animation] | * [http://www.theimage.com/animation/toc/toc.html Gifology: Understanding GIF Files & GIF Animation] | ||
* [http://web.archive.org/web/20100929231133/http://www.etsimo.uniovi.es/gifanim/gifabout.htm All About GIF89a] | * [http://web.archive.org/web/20100929231133/http://www.etsimo.uniovi.es/gifanim/gifabout.htm All About GIF89a] | ||
=== Test images === | |||
* ImageTestSuite | |||
** [https://github.com/Wormnest/imagetestsuite/blob/wiki/GIFTestSuite.md Documentation] | |||
** [https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/imagetestsuite/imagetestsuite-gif-1.00.tar.gz Images (Archive)] | |||
** [https://github.com/Wormnest/imagetestsuite/tree/master/gif Images (git)] | |||
[[Category:Spec coordination]] |
Latest revision as of 20:04, 20 November 2017
Animated GIFs need a spec that, in particular, specifies how to handle timings (not all browsers honor all values, so we should specify what needs to be honored exactly)
Implementations
Gecko
- http://mxr.mozilla.org/mozilla-central/source/image/decoders/nsGIFDecoder2.h
- http://mxr.mozilla.org/mozilla-central/source/image/decoders/GIF2.h
- http://mxr.mozilla.org/mozilla-central/source/image/decoders/nsGIFDecoder2.cpp
WebKit
- http://trac.webkit.org/browser/trunk/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.h
- http://trac.webkit.org/browser/trunk/Source/WebCore/platform/image-decoders/gif/GIFImageReader.h
- http://trac.webkit.org/browser/trunk/Source/WebCore/platform/image-decoders/gif/GIFImageDecoder.cpp
- http://trac.webkit.org/browser/trunk/Source/WebCore/platform/image-decoders/gif/GIFImageReader.cpp
- http://trac.webkit.org/browser/trunk/Source/WebCore/platform/image-decoders/ImageDecoder.cpp
Blink
- https://chromium.googlesource.com/chromium/blink/+/master/Source/core/platform/image-decoders/gif/GIFImageDecoder.h
- https://chromium.googlesource.com/chromium/blink/+/master/Source/core/platform/image-decoders/gif/GIFImageReader.h
- https://chromium.googlesource.com/chromium/blink/+/master/Source/core/platform/image-decoders/gif/GIFImageDecoder.cpp
- https://chromium.googlesource.com/chromium/blink/+/master/Source/core/platform/image-decoders/gif/GIFImageReader.cpp
- https://chromium.googlesource.com/chromium/blink/+/master/Source/core/platform/image-decoders/ImageDecoder.cpp
Other
- http://sourceforge.net/p/giflib/code/ci/master/tree/ (giflib)
- https://github.com/jnordberg/gif.js (gif.js)
- https://github.com/deanm/omggif (omggif)
- https://github.com/avik-das/giferly (giferly)
- http://code.google.com/p/gifdotnet/source/browse/ (gifdotnet)
References
Specifications
- GIF87a: Text (Stanford) / Text (W3C)
- GIF89a: Text / HTML
- GIF Application Extensions:
NETSCAPE
2.0
ANIMEXTS
1.0
ICCRGBG1
012
XMP Data
XMP
- XMP Specification, Part 3: Storage in Files (section 1.1.2)
fractint
001
/fractint
002
/fractint
003
/fractint
004
/fractint
005
/fractint
006
/fractint
007
- fractint encoder source code
- fractint decoder source code, with notes and backwards compatibility for older versions of the fractint extension blocks. All of their extension blocks have names of the form
fractintnnn
, wherennn
is a 3 digit block number.
MathType
001
/MathType
002
/MathType
003
- MathType baseline information
- MathType: GIFs do not retain their DPI properties - descriptions and sample images could be used to reverse engineer format
Further details
- Wikipedia:GIF
- GIF File Format
- What's in a GIF
- Command Line Fanatic: Inside the GIF file format
- Gifology: Understanding GIF Files & GIF Animation
- All About GIF89a
Test images
- ImageTestSuite