Graphics Interchange Format
(trocando
formatos
gráficos)
From Wikipedia, the free encyclopedia
(Origem: Wikipédia, a enciclopédia livre)A rotating globe in GIF format. Banding is noticeable in the blue gradient areas due to the restricted palette. | |
Filename extension | .gif |
---|---|
Internet media type | image/gif |
Type code | GIF GIFf |
Uniform Type Identifier | com.compuserve.gif |
Magic number | GIF87a /GIF89a |
Developed by | CompuServe |
Type of format | Raster graphics image format |
The Graphics Interchange Format (GIF) is a bitmap image format that was introduced by CompuServe in 1987 and has since come into widespread usage on the World Wide Web due to its wide support and portability.
The format supports up to 8 bits per pixel, allowing a single image to reference a palette of up to 256 distinct colors chosen from the 24-bit RGB color space. It also supports animations and allows a separate palette of 256 colors for each frame. The color limitation makes the GIF format unsuitable for reproducing color photographs and other images with continuous color, but it is well-suited for simpler images such as graphics or logos with solid areas of color.
GIF images are compressed using the Lempel-Ziv-Welch (LZW) lossless data compression technique to reduce the file size without degrading the visual quality. This compression technique was patented in 1985. Controversy over the licensing agreement between the patent holder, Unisys, and CompuServe in 1994 inspired the development of the Portable Network Graphics (PNG) standard; since then all the relevant patents have expired.
Contents[hide] |
History
CompuServe introduced the GIF format in 1987 to provide a color image format for their file downloading areas, replacing their earlier run-length encoding (RLE) format, which was black and white only. GIF became popular because it used LZW data compression, which was more efficient than the run-length encoding that formats such as PCX and MacPaint used, and fairly large images could therefore be downloaded in a reasonably short time, even with very slow modems.
The original version of the GIF format was called 87a. In 1989, CompuServe devised an enhanced version, called 89a,[1] that added support for multiple images in a stream, interlacing and storage of application-specific metadata. The two versions can be distinguished by looking at the first six bytes of the file (the "magic number" or "signature"), which, when interpreted as ASCII, read "GIF87a" and "GIF89a", respectively.
GIF was one of the first two image formats commonly used on Web sites, the other being the black and white XBM.[citation needed] JPEG came later with the Mosaic browser.
The GIF89a feature of storing multiple images in one file, accompanied by control data, is used extensively on the Web to produce simple animations. The optional interlacing feature, which stores image scan lines out of order in such a fashion that even a partially downloaded image was somewhat recognizable, also helped GIF's popularity,[citation needed] as a user could abort the download if it was not what was required.
Pronunciation
The creators of the format pronounced GIF with a soft "g", /ˈdʒɪf/, as in "George". However, many people pronounce GIF with a hard "G", as in a 'gift' /ˈɡɪf/,[citation needed] reflecting the way it is pronounced in its own acronym (Graphics Interchange Format). According to the creator of the GIF format, Steve Wilhite, the pronunciation deliberately echoes that of an American peanut butter brand, Jif, and the employees of CompuServe would often say "Choosy developers choose GIF", spoofing this brand's television commercials.[citation needed] This pronunciation was also identified by CompuServe in their documentation of a graphics display program called CompuShow.[2] Both pronunciations are given as correct by the Oxford English Dictionary[3] and the American Heritage Dictionary.[4]
Usage
- GIFs are suitable for sharp-edged line art (such as logos) with a limited number of colors. This takes advantage of the format's lossless compression, which favors flat areas of uniform color with well defined edges (in contrast to JPEG, which favors smooth gradients and softer images).
- GIFs can also be used to store low-color sprite data for games.
- GIFs can be used for small animations and low-resolution film clips.
- In view of the general limitation on the GIF image palette to 256 colors, it is not usually used as a format for digital photography. Digital photographers use image file formats capable of reproducing a greater range of colors, such as TIFF, RAW or the lossy JPEG, which is more suitable for compressing photographs.
- The PNG format is a popular alternative to GIF images since it uses better compression techniques and does not have a limit of 256 colors, but PNGs
Palettes
GIF is palette based: although any palette selection can be one of millions of shades, the maximum number that can be used in a frame is 256. These are stored in a "palette", a table that associates each palette selection number with a specific RGB value. The limitation to 256 colors seemed reasonable at the time of GIF's creation because few people could afford the hardware to display more. Simple graphics, line drawings, cartoons, and grey-scale photographs typically need fewer than 256 colors. In addition, one of the colors in the palette can optionally be set as fully transparent. A transparent pixel takes on the color of the pixel in the same positions from the background, which may have been determined by a previous frame of animation.
There exist ways to dither or diffuse photographs by using pixels of 2 or more different colors to approximate an in-between color, but this transformation inevitably loses some detail. The algorithms used to select the palette and to perform the dithering vary widely in output quality. Additionally, dithering significantly reduces the image's compressibility and thus works contrary to GIF's main purpose.
In the early days of graphical web browsers, graphics cards with 8-bit buffers (allowing only 256 colors) were common and it was fairly common to make GIF images using the websafe palette.[citation needed] This ensured predictable display but severely limited the choice of colors. Now that 32-bit graphics
True color
There are at least two rarely-used methods[5][6] that can generate a GIF that, if decoded according to the GIF89a standard, will produce an animation that ends with a 24-bit RGB truecolor image.
GIF89a was designed based on the principle of rendering images (known as frames when used for animation) to a logical, fixed-size screen. Each image could optionally have no delay after it is rendered, and could have its own 256-color palette. Also, each image need not fill the entire logical screen, and the animation can cease after the last frame; it need not begin again. The multi-frame, zero-delay, and unique-palette features, optionally combined with transparency, allow for each image to replace only a portion of the previous image's pixel data. When used without looping, a more-than-256-color final result can be achieved.
For example, a GIF can be encoded to render as a series of overlapping full-screen images, each image filling in color that wasn't in the previous one. Transparent pixels can be used to preserve colors from previous images.[7]
A similar method that doesn't use transparency is to encode the GIF to render as a series of less-than-full-screen images adjacent to each other, rather than overlapping.[8]
These methods are not widely supported by GIF-generating software, and Web browsers and other image viewers may not contain completely compliant GIF89a implementations, so their ability to display such GIFs accurately may be limited.
Example .gif file
Microsoft Windows Vista's Paint program saves a small black and white image as the following .gif file. Due to overhead code such as an unnecessarily large color table this .gif file is not efficient for the image with only 15 pixels.
byte# hexadecimal text or
(hex) value Meaning
0: 47 49 46
38 39 61 GIF89a Header
Logical Screen Descriptor
6: 03 00 3 - width pixels
8: 05 00 5 - height pixels
A: F7 - GCT follows for 256 colors with resolution 3 x 8bits/primary
B: 00 0 - background color #0
C: 00 - default aspect ratio
R G B Global Color Table
D: 00 00 00 0 0 0 - color #0 black
10: 80 00 00 128 0 0 - #1
: :
85: 00 00 00 0 0 0 - color #40 black
: :
30A: FF FF FF 255 255 255 - color #255 white
30D: 21 F9 04 Graphic Control Extension
310: 01 - transparency is possible
311: 00 00 - delay for animation: not used
313: 10 16 - color #16 is transparent
314: 00 - end
315: 2C Image Descriptor
316: 00 00 00 00 (0,0) - scan pixels from left top...
31A: 03 00 05 00 (3,5) - ...to right bottom.
31E: 00 - end
31F: 08 8 LZW min. code size
320: 0B 11 11 bytes LZW encoded image data follow
321: 00 51 FC 1B 28 70 A0 C1 83 01 01
32C: 00 - end
32D: 3B GIF file terminator
Image coding
The image pixel colors, scanned horizontally from top left, are converted by LZW encoding to codes that are then mapped into bytes for storing in the file. For the sample image above the reversible mapping between 9-bit codes and bytes is shown below.
9-bit binary Bytes
(hex) (hex)
00000000 00
100
0101000|1 51
028
111111|00 FC
0FF
00011|011 1B
103
0010|1000 28
102
011|10000 70
103
10|100000 A0
106
1|1000001 C1
107
10000011 83
00000001 01
101
0000000|1 01
A slight compression is evident: pixel colors defined initially by 15 bytes are exactly represented by 12 code bytes including control codes. The encoding process that produces the 9-bit codes is shown below. A local string accumulates pixel color numbers from the palette, with no output action as long as the local string can be found in a code table. There is special treatment of the first two pixels that arrive before the table grows from its initial size by additions of strings. After each output code, the local string is initialized to the latest pixel color (that could not be included in the output code).
Table 9-bit
string --> code code Action
#0 | 000h Initialize root table of 9-bit codes
palette | :
colors | :
#255 | 0FFh
clr | 100h
end | 101h
| 100h Clear
Pixel Local |
color Palette string |
BLACK #40 28 | 028h 1st pixel always to output
WHITE #255 FF | String found in table
28 FF | 102h Add 1st string always to table
FF | Initialize local string
WHITE #255 FF FF | String not found in table
| 0FFh - output code for previous string
FF FF | 103h - add latest string to table
FF | - initialize local string
WHITE #255 FF FF | String found in table
BLACK #40 FF FF 28 | String not found in table
| 103h - output code for previous string
FF FF 28 | 104h - add latest string to table
28 | - initialize local string
WHITE #255 28 FF | String found in table
WHITE #255 28 FF FF | String not found in table
| 102h - output code for previous string
28 FF FF | 105h - add latest string to table
FF | - initialize local string
WHITE #255 FF FF | String found in table
WHITE #255 FF FF FF | String not found in table
| 103h - output code for previous string
FF FF FF | 106h - add latest string to table
FF | - initialize local string
WHITE #255 FF FF | String found in table
WHITE #255 FF FF FF | String found in table
WHITE #255 FF FF FF FF | String not found in table
| 106h - output code for previous string
FF FF FF FF| 107h - add latest string to table
FF | - initialize local string
WHITE #255 FF FF | String found in table
WHITE #255 FF FF FF | String found in table
WHITE #255 FF FF FF FF | String found in table
No more pixels
107h - output code for last string
101h End
[edit] Image decoding
Decoding begins by mapping the stored bytes back to 9-bit codes. These are decoded to recover the pixel colors as shown below. A table identical to the one used in the encoder is built by adding strings by this rule:
Is incoming code found in table?
YES: add string for local code followed by first byte of string for incoming code
NO: add string for local code followed by copy of its own first byte
shift
9-bit ----> Local Table Pixel
code code code --> string Palette color Action
100h 000h | #0 Initialize root table of 9-bit codes
: | palette
: | colors
0FFh | #255
100h | clr
101h | end
028h | #40 BLACK Decode 1st pixel
0FFh 028h | Incoming code found in table
| #255 WHITE - output string from table
102h | 28 FF - add to table
103h 0FFh | Incoming code not found in table
103h | FF FF - add to table
| - output string from table
| #255 WHITE
| #255 WHITE
102h 103h | Incoming code found in table
| - output string from table
| #40 BLACK
| #255 WHITE
104h | FF FF 28 - add to table
103h 102h | Incoming code found in table
| - output string from table
| #255 WHITE
| #255 WHITE
105h | 28 FF FF - add to table
106h 103h | Incoming code not found in table
106h | FF FF FF - add to table
| - output string from table
| #255 WHITE
| #255 WHITE
| #255 WHITE
107h 106h | Incoming code not found in table
107h | FF FF FF FF - add to table
| - output string from table
| #255 WHITE
| #255 WHITE
| #255 WHITE
| #255 WHITE
101h | End
[edit] LZW code lengths
Shorter code lengths can be used for smaller palettes than the 256 (maximum) colors in the example. The code table initially contains codes that are one bit longer than the palette size in order to give additional space for two special codes clr and end and for strings that are added during the process. When the table is full the code length increases to give space for more strings, up to a maximum code 4095 = FFF(hex). As the decoder builds its table it tracks these increases in code length and it is able to unpack incoming bytes accordingly.
Non-compressed .gif
The standard allows a coder to insert a 'clr' code at any time in the image data, which implicitly allows .gif files to be created without LZW compression. The coding table then need never grow beyond the 'end' code value. At the cost of larger file size this gives advantages of simpler coding with a 1:1 correspondence of pixels and palette codes while keeping compatibility with ordinary .gif displays. It has been used to avoid infringing patents covering LZW. For the example 3x5 image above the following 9-bit codes represent 'clr' followed by image pixels in scan order and 'end'.
9-bit codes: 100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101
After the above codes are mapped to bytes the non-compressed file differs from the compressed file thus:
:
320: 14 20 20 bytes non-compressed image data follow
321: 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335: 00 - end
:
Animated .gif
An animated .gif file comprises a number of images or frames to be displayed successively, each described by its own GCE (Graphic Control Extension), preceded by a header whose content by default applies to all the frames. After the header the data is stream-oriented instead of being at fixed indices, so the location of the start of a GCE depends on the length of preceding GCE(s). Within a GCE the LZE-coded image data is arranged in blocks each of up to 255 bytes; the size of block is declared by a byte that precedes it. Below is the structure of the animation Rotating earth (large).gif:
byte# hexadecimal text or
(hex) value Meaning
0: 47 49 46
38 39 61 GIF89a Header
Logical Screen Descriptor
6: 90 01 400 - width pixels
8: 90 01 400 - height pixels
A: F7 - GCT follows for 256 colors with resolution 3 x 8bits/primary
B: 00 0 - background color #0
C: 00 - default aspect ratio
D: Global Color Table
:
30D: 21 FF 0B Application Extension
310: 4E 45 54
53 43 41
50 45 32
2E 30 NETSCAPE2.0
31B: 03 01 - data follows
31D: FF FF - loop animation
31F: 00 - end
320: 21 F9 04 Graphic Control Extension frame #1
323: 08 - no transparency
324: 09 00 - 0.09 sec duration
325: 00 - no transparent color
327: 00 - end
328: 2C Image Descriptor
329: 00 00 00 00 (0,0) - scan pixels from left top...
32D: 90 01 90 01 (400,400) - ...to right bottom
331: 00 - end
332: 08 8 LZW min code size
333: FF 255 255 bytes LZW encoded image data follow
334: data
433: FF 255 255 bytes LZW encoded image data follow
data
:
92BA: 00 end
92BB: 21 F9 04 Graphic Control Extension frame #2
: :
153B7B:21 F9 04 Graphic Control Extension frame #44
:
15CF35:3B 1 429 301 File terminates
The GCEs allow the duration for which each frame is displayed to be specified in hundredths of second. Some economy of data is possible where a frame need only rewrite a portion of the pixels of the display, because the Image Descriptor can define a smaller rectangle to be rescanned instead of the whole image. Displays that do not support animated .gifs show only the first frame.
Unisys and LZW patent enforcement
In 1977 and 1978, Jacob Ziv and Abraham Lempel published a pair of papers on a new class of lossless data-compression algorithms, now collectively referred to as "LZ77" and "LZ78". In 1983, Terry Welch developed a fast variant of LZ78 which was named LZW.[9][10]
Welch filed a patent application for the LZW method in June 1983. The resulting patent, US patent 4558302, granted in December 1985, was assigned to Sperry Corporation who subsequently merged with Burroughs Corporation in 1986 and formed Unisys.[9] Further patents were obtained in the United Kingdom, France, Germany, Italy, Japan and Canada.
In June 1984, an article by Welch was published in the IEEE magazine which publicly described the LZW technique for the first time.[11] LZW became a popular data compression technique and, when the patent was granted, Unisys entered into licensing agreements with over a hundred companies.[9][12]
The popularity of LZW led CompuServe to choose it as the compression technique for their GIF format, developed in 1987. At the time, CompuServe was not aware of the patent.[9] Unisys became aware that the GIF format used the LZW compression technique and entered into licensing negotiations with CompuServe in January 1993. The subsequent agreement was announced on December 24, 1994.[10] Unisys stated that they expected all major commercial on-line information services companies employing the LZW patent to license the technology from Unisys at a reasonable rate, but that they would not require licensing, or fees to be paid, for non-commercial, non-profit GIF-based applications, including those for use on the on-line services.[12]
Following this announcement, there was widespread condemnation of CompuServe and Unisys, and many software developers threatened to stop using the GIF format. The PNG format (see below) was developed in 1995 as an intended replacement.[9][10][11] However, obtaining support from the makers of Web browsers and other software for the PNG format proved difficult and it was not possible to replace the GIF format, although PNG has gradually increased in popularity.[9]
In August 1999, Unisys changed the details of their licensing practice, announcing the option for owners of Billboard and Intra net Web sites to obtain licenses on payment of a one-time license fee of $5000 or $7500.[13] Such licenses were not required for website owners or other GIF users who had used licensed software to generate GIFs. Nevertheless, Unisys was the subject of thousands of online attacks and abusive emails from users believing that they were going to be charged $5000 or sued for using GIFs on their websites.[14] Despite giving free licenses to hundreds of non-profit organizations, schools and governments, Unisys was completely unable to generate any good publicity and continued to be vilified by individuals and organizations such as the League for Programming Freedom who started the "Burn All GIFs" campaign.[15]
The US LZW patent expired on June 20, 2003.[16] The counterpart patents in the United Kingdom, France, Germany and Italy expired on June 18, 2004, the Japanese counterpart patents expired on June 20, 2004 and the counterpart Canadian patent expired on July 7, 2004.[16] Consequently, while Unisys has further patents and patent applications relating to improvements to the LZW
PNG and other alternatives
Portable Network Graphics (PNG) was designed as a replacement for the GIF format in order to avoid infringement of Unisys' patent on the LZW compression technique.[9] PNG offers better compression and more features than GIF.[citation needed] The format is more suitable than GIF in instances where true-color imaging and alpha transparency are required. MNG was originally developed as a PNG-based solution for animations, but has not been widely adopted. The GIF format is still preferred for animation over PNG, although true Animated Portable Network Graphics are under development by Mozilla and are supported in Firefox 3.[17][18]
Although it took time for the PNG format to be supported, new web browsers support the PNG format and GIF images can usually be replaced by PNG images if desired. However, Internet Explorer versions 6 and earlier do not support PNG's alpha channel transparency feature without using Microsoft-specific HTML extensions.[19] Using standard HTML tags for PNG images in Internet Explorer can produce a look different from that intended. Internet Explorer 7 supports alpha channel transparency without needing extensions. No versions of Internet Explorer, however, support the gamma feature of PNG images, and the display of these images may be of the wrong tint.[20]
PNG image files are generally smaller than GIF files of the same image quality, due to the more efficient compression techniques used in PNG encoding.[citation needed] PNG files can indeed be much larger than GIF files in situations where a GIF and a PNG file were created from a high-quality master image, as PNG is capable of storing more color depth and transparency information than GIF. However, for identical 8-bit (or lower) image data, PNG-format image files are almost always smaller than the equivalent GIF. Misinformation about PNG efficiency can generally be traced back to poor PNG support in older versions of some image manipulation programs, (for example Adobe Photoshop did not optimize PNGs for reduced color palettes by default).[citation needed] A working solution is pngcrush. Generally it can be noted that also a proper support for (animated) GIF is difficult: complicated canvas, redundant color entries, dictionary resets.[clarification needed] Also note the complicated interaction between color quantization, compression (especially in animations) and dithering noted in the former reference with is obsolete with PNG.[clarification needed]
In 2004, a proposed extension to the PNG format called APNG was suggested. It was to provide the ability to animate PNG files, while retaining backwards compatibility in decoders that cannot understand the animation chunk. Older decoders would simply render the first frame of the animation. MNG, a variant of PNG that supports animation, reached version 1.0 in 2001, but few applications support it. Animated GIF remains widely used as many applications are capable of creating the files, and it remains the only animated image format capable of being rendered in nearly all modern web browsers without the use of a plug-in.[21] Nevertheless, embedded Flash objects, MPEGs and other video formats are used in place of animated GIFs in many websites.
See also
- Comparison of graphics file formats
- Comparison of layout engines (graphics)
- Image file formats
- Software patent
References
- ^ "Cover Sheet for the GIF89a Specification". W3C. July 31, 1990. http://www.w3.org/Graphics/GIF/spec-gif89a.txt. Retrieved on March 6, 2009.
- ^ Olsen, Steve. "The GIF Pronounciation Page". http://www.olsenhome.com/gif/. Retrieved on March 6, 2009. "CompuServe used to distribute a graphics display program called CompuShow. In the documentation for version 8.33 in the FAQ section, it states: The GIF (Graphics Interchange Format), pronounced "JIF", was designed by CompuServe and the official specification released in June of 1987."
- ^ "Oxford English Dictionary". Oxford University Press. http://dictionary.oed.com/cgi/entry/50292950?query_type=word&queryword=gif&first=1&max_to_show=10&sort_type=alpha&result_place=1&search_id=kUF6-h25mk9-6375&hilite=50292950. Retrieved on 2007-04-15.
- ^ "American Heritage Dictionary". Houghton-Mifflin. http://dictionary.reference.com/browse/GIF. Retrieved on 2007-04-15.
- ^ GIF 24 Bit (truecolor) extensions
- ^ Itsagif Layers
- ^ This method is demonstrated by Pedagoguery Software's Itsagif software for Windows and older Macintosh OSes.
- ^ This method is explained in detail by Andreas Kleinert in his GIF 24 Bit (truecolor) extensions document, and is demonstrated on Philip Howard's True-Color GIF Example Web page, which uses his angif C library. The demo uses blocks of size 16 by 16 pixels, allowing for up to 256 unique colors, 1 per pixel, the maximum each block's palette can support.
- ^ a b c d e f g History of the Portable Network Graphics (PNG) Format by Greg Roelofs
- ^ a b c Sad day... GIF patent dead at 20
- ^ a b The GIF Controversy: A Software Developer's Perspective
- ^ a b Unisys Clarifies Policy Regarding Patent Use in On-Line Service Offerings - archived by League for Programming Freedom
- ^ LZW Software and Patent Information - clarification of 2 September 1999
- ^ Unisys Not Suing (most) Webmasters for Using GIFs - Slashdot investigation into the controversy
- ^ Burn All GIFs - A project of the League for Programming Freedom
- ^ a b c License Information on GIF and Other LZW-based Technologies
- ^ APNG Specification - MozillaWiki
- ^ Mozilla Labs » Blog Archive » Better animations in Firefox 3
- ^ AlphaImageLoader Filter
- ^ "What's New in Internet Explorer 7". MSDN. http://msdn.microsoft.com/en-us/library/ms649487%28VS.85%29.aspx. Retrieved on March 6, 2009.
- ^ Staples, Tanya; Weinman, Lynda (2005). Adobe Photoshop CS2 for the Web: Hands-on Training. Peachpit Press.
External links
Wikimedia Commons has media related to: GIF |
- GIF89a specification
- The GIF Pronunciation Page
- LZW GIF decoding by Arturo San Emeterio Campos
- LZW and GIF explained
- Replacing a Dictionary with a Square Root – suggestions for compressing GIFs without using LZW compression
- Web Graphics discusses and illustrates the differences between GIF, JPEG and PNG formats
|
traduzindo texto acima para português
llllllllllllllllllllll
(Trocando
formatos
gráficos)
"GIF" redireciona aqui. Para outros usos, ver GIF (desambiguação).
Graphics Interchange Format
Um globo girando no formato GIF. Banding é perceptível no azul, devido ao gradiente áreas restritas paleta.
Filename extensão. Gif
Internet tipo de mídia image / gif
Código do tipo GIF
GIFf
Tipo Identificador Uniforme com.compuserve.gif
Magic número GIF87a/GIF89a
Desenvolvido pela CompuServe
Tipo de formato raster gráficos imagem formato
O Graphics Interchange Format (GIF) é uma imagem bitmap formato que foi introduzido pela CompuServe em 1987 e, desde então, entrar em uma utilização generalizada na World Wide Web, devido ao seu amplo apoio e portabilidade.
O formato suporta até 8 bits por pixel, permitindo que uma única imagem de referência uma paleta de cores distintas até 256 escolhidos a partir do 24-bit cor RGB espaço. Também suporta animações e permite uma paleta de 256 cores para cada frame. A cor torna limitação o formato GIF impróprios para reproduzir fotografias coloridas e outras imagens com cores contínua, mas é bem adequado para imagens mais simples, como gráficos ou logotipos com áreas de cor sólida.
Imagens GIF são compactados usando o Lempel-Ziv-Welch (LZW) sem perdas de compressão de dados técnica para reduzir o tamanho do arquivo sem degradar a qualidade visual. Esta compressão técnica foi patenteada em 1985. Controvérsia sobre o acordo de licenciamento entre o titular da patente, Unisys, e CompuServe em 1994 inspirou o desenvolvimento do Portable Network Graphics (PNG) padrão; desde então, todas as patentes já expiraram.
Sumário
[esconder]
* 1 História
* 2 Pronúncia
* 3 Uso
* 4 Palettes
o 4/1 True Color
* 5 Exemplo. Gif
o 5/1 Imagem codificação
o 5/2 Imagem decodificação
o código LZW 5/3 comprimentos
o 5/4 não-compactado. gif
* 6 animado. Gif
* 7 Unisys e LZW patente execução
* 8 PNG e outras alternativas
* 9 Ver também
* 10 Referências
* 11 Ligações externas
História
Um exemplo de uma não-imagem GIF animada.
CompuServe apresenta o formato GIF, em 1987, para fornecer uma imagem colorida formato de ficheiro para download domínios, substituindo os seus anteriores rodados comprimento encoding (RLE) formato, que era preto e branco apenas. GIF se tornou popular porque utilizados LZW de compressão de dados, que foi mais eficiente que o run-length encoding que formatos como o PCX e MacPaint utilizado e bastante grande, por isso, as imagens poderão ser baixadas em um curto espaço de tempo razoável, mesmo com modems muito lentos.
A versão original do formato GIF foi chamado de 87 º. Em 1989, CompuServe concebeu uma versão melhorada, chamada 89a [1], que adicionou suporte para múltiplas imagens em um riacho, entrelaçadas e armazenamento de aplicação específicos de metadados. As duas versões podem ser distinguidos por olhar para os primeiros seis bytes do arquivo (o "número mágico" ou "assinatura"), que, quando interpretado como ASCII, deve ler-se "GIF87a" e "GIF89a", respectivamente.
GIF foi um dos primeiros dois formatos de imagem comumente usado em sites da Web, sendo o outro a preto e branco XBM. [Citação necessários] JPEG veio mais tarde com o navegador Mosaic.
O GIF89a funcionalidade de armazenamento de múltiplas imagens em um arquivo, acompanhadas de dados de controlo, é amplamente utilizado na Web para produzir animações simples. O entrelaçamento característica opcional, que armazena imagens digitalizar linhas fora de ordem, de tal forma que, mesmo parcialmente descarregado uma imagem era algo reconhecível, também contribuiu para a popularidade do MIC, [citação necessários], como um usuário poderia interromper o download, se não foi o que foi exigido .
Pronúncia
Os criadores do formato GIF pronunciada com um suave "g", / dʒɪf /, como em "George". No entanto, muitas pessoas pronunciar MIC com uma dura "G", como em um 'dom' / ɡɪf /, [citação necessários] reflectindo a forma como é pronunciada na sua própria sigla (Graphics Interchange Format). De acordo com o criador do formato GIF, Steve WILHITE, a pronúncia deliberadamente ecos de uma marca americana amendoim, Jif, e os empregados da CompuServe, muitas vezes dizer "miudinho desenvolvedores escolher GIF", spoofing esta marca da televisão comerciais. [Citação necessários ] Esta pronúncia também foi identificado por CompuServe em sua documentação de um programa chamado exibir gráficos CompuShow [2]. Ambas as pronúncias são dadas como corretas pelo Dicionário Oxford Inglês [3] e da American Heritage Dictionary [4].
Uso
Apesar das limitações do formato GIF, ele pode ser usado para exibir animações, como esta animação de Newton Cradle demonstra.
Um exemplo de um curto GIF animação feita com uma câmera digital. O arquivo tem mais de 2MB de tamanho.
* GIFs são adequados para com arestas vivas linha arte (tais como logotipos), com um número limitado de cores. Isso leva vantagem do formato de compressão sem perdas, o que favorece áreas fixas de cor uniforme com bordas bem definidas (ao contrário do JPEG, o que favorece gradientes suaves e macios imagens).
* GIFs também pode ser usado para armazenar baixa cor sprite dados para jogos.
* GIFs pode ser usado para pequenas animações e filmes de baixa resolução.
* Em virtude da limitação geral sobre a imagem GIF paleta de 256 cores, não é normalmente utilizada como um formato de fotografia digital. Fotógrafos digitais usar imagem formatos de arquivo capaz de reproduzir uma maior gama de cores, como o TIFF, RAW ou as perdas JPEG, que é mais adequado para comprimir fotografias.
* O formato PNG é uma alternativa popular para imagens GIF melhor compressão, uma vez que utiliza as técnicas e não tem um limite de 256 cores, mas não suportam PNGs animações. O MNG APNG e formatos, ambos derivados do PNG, o apoio animações, mas não são muito utilizadas.
Paletas
Um exemplo de uma imagem GIF salva com um "web-safe" e paleta com dithering usando o método de Floyd-Steinberg. Note que, devido ao reduzido número de cores na imagem, existem graves problemas visor.
O MIC é paleta baseada: embora qualquer paleta seleção pode ser um dos milhões de tons, o número máximo que pode ser usada em um frame é 256. Estes são armazenados em uma "paleta", uma tabela que associa cada paleta selecção com um número específico valor RGB. A limitação de 256 cores parecia razoável no momento da criação do MIC, porque poucas pessoas podem suportar os custos de hardware para exibir mais. Simples gráficos, linhas, desenhos, desenhos animados, fotografias e cinzento escala necessidade tipicamente menos de 256 cores. Além disso, uma das cores na paleta opcionalmente pode ser definido como totalmente transparente. Um pixel transparente assume a cor do pixel nas mesmas posições do fundo, que pode ter sido determinada por uma anterior quadro de animação.
Existem maneiras de arrepiar ou difusa fotografias usando pixels de 2 ou mais cores diferentes para aproximar-nos entre uma cor, mas esta transformação inevitavelmente perde algum detalhe. Os algoritmos utilizados para seleccionar a paleta e para executar os dithering variam amplamente na produção de qualidade. Além disso, dithering reduz significativamente a imagem da compressão e, portanto, funciona ao contrário do GIF do objectivo principal.
Nos primeiros dias de browsers gráficos, placas gráficas com 8 bits buffers (permitindo apenas 256 cores) eram comuns e que era bastante comum para fazer imagens GIF usando a paleta websafe. [Citação necessários] Esta exibição assegurada previsível mas severamente limitada a escolha de cores. Agora que o 32-bit placas gráficas, que suportam 24 bits de cor, são a norma, podem ser feitas até paletas de cores para a melhor imagens individuais.
True Color
Existem pelo menos dois métodos utilizados raramente, [5] [6], que pode gerar um GIF que, se descodificados de acordo com a norma GIF89a, irá produzir uma animação que termina com um 24-bit RGB TrueColor imagem.
GIF89a foi concebido com base no princípio de renderização de imagens (conhecido como molduras quando usado para animação) para uma lógica, de tamanho fixo tela. Cada imagem poderia eventualmente ter nenhum atraso depois que é prestado, e poderá ter a sua própria paleta de 256 cores. Além disso, cada imagem não necessita de preencher a tela toda lógica, bem como a animação pode cessar após o último frame, que não precisam de começar novamente. O multi-frame, sem demora, e único-paleta características, opcionalmente combinado com transparência, para permitir que cada imagem para substituir apenas uma parte da imagem anterior do pixel dados. Quando utilizado sem looping, uma mais-que-256-color resultado final pode ser alcançado.
Por exemplo, um GIF podem ser codificados para renderizar como uma série de sobreposições de tela cheia imagens, cada imagem enchendo de cor que não estava no anterior. Transparente pixels podem ser utilizados para preservar a cores a partir de imagens anteriores [7].
Um método semelhante que não utiliza a transparência é a codificar o GIF para renderizar como uma série de less-than-full-screen imagens adjacentes uns aos outros, ao invés de sobreposição [8].
Estes métodos não são amplamente apoiadas pelo GIF geradora de software, e navegadores da Web e outras imagens telespectadores não podem conter completamente compatível GIF89a implementações, assim a sua capacidade de exibir tais GIFs precisão pode ser limitada.
Exemplo. gif
Amostra 3X5 pixels imagem.
Bytes Dh 30Ch para definir uma paleta de 256 cores.
Microsoft Windows Vista do programa Paint salva uma pequena imagem preta e branca, como a seguir. Gif. Devido à sobrecarga código, como um grande desnecessariamente cores este quadro. Gif não é eficiente para a imagem com apenas 15 pixels.
# byte hexadecimais texto ou
(hex) Valor Significado
0: 47 49 46
38 39 61 GIF89a Header
Logical Screen Descriptor
6: 03 00 3 - largura pixels
8: 05 00 5 - altura pixels
R: F7 - TCG segue 256 cores com resolução de 3 x 8bits/primary
B: 00 0 - cor # 0
C: 00 - aspecto rácio padrão
R G B Global Color Table
D: 00 00 00 0 0 0 - cor preta # 0
10: 80 00 00 128 0 0 - # 1
::
85: 00 00 00 0 0 0 - cor preta # 40
::
30A: FF FF FF 255 255 255 - cor branca # 255
30D: 21 F9 04 Graphic Control Extension
310: 01 - a transparência é possível
311: 00 00 - atraso de animação: não utilizado
313: 10 16 - color # 16 é transparente
314: 00 - final
315: 2C Image Descriptor
316: 00 00 00 00 (0,0) - scan pixels topo da esquerda ...
31A: 03 00 05 00 (3,5) - ... para a direita inferior.
31E: 00 - final
31F: 08 8 LZW min. código tamanho
320: 0B 11 11 bytes de dados siga LZW codificados imagem
321: 00 51 FC 1B 28 70 A0 C1 83 01 01
32C: 00 - final
32D: 3B arquivo GIF terminadoras
Imagem codificação
A imagem pixel cores, digitalizada horizontalmente a partir do topo à esquerda, são convertidos por LZW codificação de códigos que são mapeados em bytes, em seguida, para o armazenamento do arquivo. Para a amostra da imagem acima reversível mapeamento entre 9 códigos bits e bytes é mostrado abaixo.
9-bit binário Bytes
(hex) (hex)
00000000 00
100
0101000 | 1 51
028
111111 | 00 FC
0FF
00011 | 011 1B
103
0010 | 1000 28
102
011 | 10000 70
103
10 | 100000 A0
106
1 | 1000001 C1
107
10000011 83
00000001 01
101
0000000 | 1 01
Uma ligeira compressão é evidente: pixel cores definidas inicialmente por 15 bytes são exactamente código representado por 12 bytes, incluindo códigos de controlo. A codificação o processo que produz 9-bit códigos é mostrado abaixo. Um local string acumula números pixel cor da paleta, sem saída, enquanto a acção local corda pode ser encontrado em um código tabela. Não existe um tratamento específico dos dois primeiros pixels que antes de chegar à mesa cresce a partir do seu tamanho inicial por adições de cordas. Após cada código de saída, o local string é inicializado com as últimas pixel cor (que não poderiam ser incluídas no código de saída).
Quadro 9 bits
string -> código código Acção
# 0 | 000h Initialize raiz mesa de 9 bits códigos
paleta |:
cores |:
# 255 | 0FFh
CLR | 100h
final | 101h
| 100h Limpar
Pixel local |
Paleta cores string |
BLACK # 40 28 | 028h pixel sempre à saída 1.
WHITE # 255 FF | String encontrado na tabela
28 FF | 102h Adicionar corda sempre a tabela 1.
FF | Initialize local string
WHITE # 255 FF FF | String não encontrada na tabela
| 0FFh - código de saída de string anterior
FF FF | 103h - adicionar mais recente seqüência de mesa
FF | - initialize locais string
WHITE # 255 FF FF | String encontrado na tabela
BLACK # 40 FF FF 28 | String não encontrada na tabela
| 103h - saída para o código anterior string
FF FF 28 | 104h - adicionar mais recente seqüência de mesa
28 | - initialize locais string
WHITE # 255 28 FF | String encontrado na tabela
WHITE # 255 28 FF FF | String não encontrada na tabela
| 102h - saída para o código anterior string
28 FF FF | 105h - adicionar mais recente seqüência de mesa
FF | - initialize locais string
WHITE # 255 FF FF | String encontrado na tabela
WHITE # 255 FF FF FF | String não encontrada na tabela
| 103h - saída para o código anterior string
FF FF FF | 106h - adicionar mais recente seqüência de mesa
FF | - initialize locais string
WHITE # 255 FF FF | String encontrado na tabela
WHITE # 255 FF FF FF | String encontrado na tabela
WHITE # 255 FF FF FF FF | String não encontrada na tabela
| 106h - saída para o código anterior string
FF FF FF FF | 107h - adicionar mais recente seqüência de mesa
FF | - initialize locais string
WHITE # 255 FF FF | String encontrado na tabela
WHITE # 255 FF FF FF | String encontrado na tabela
WHITE # 255 FF FF FF FF | String encontrado na tabela
Não há mais pixels
107h - saída para o código última corda
101h Fim
Imagem decodificação
Descodificação começa pelo mapeamento dos bytes armazenados de volta a 9 bits códigos. Estes são decodificados para recuperar o pixel cores conforme mostrado abaixo. Uma tabela idêntica à utilizada no codificador é construído adicionando cordas por esta regra:
É recebida código encontrado na tabela?
SIM: string para adicionar local seguido pelo primeiro byte de corda para receber código
NO: string para adicionar locais seguido de cópia de seu próprio primeiro byte
deslocar
9-bit ----> local Quadro Pixel
código código código -> string Paleta cores Acção
100h 000h | # 0 Inicializar tabela raiz de 9 bits códigos
: | Paleta
: | Cores
0FFh | # 255
100h | CLR
101h | fim
028h | # 40 BLACK Descodificam pixel 1.
0FFh 028h | Incoming código encontrado na tabela
| # 255 BRANCO - saída seqüência de mesa
102h | 28 FF - adicionar a tabela
103h 0FFh | Incoming código não foi encontrado na tabela
103h | FF FF - adicionar a tabela
| - Output string de mesa
| # 255 BRANCO
| # 255 BRANCO
102h 103h | Incoming código encontrado na tabela
| - Output string de mesa
| # 40 BLACK
| # 255 BRANCO
104h | FF FF 28 - adicionar a tabela
103h 102h | Incoming código encontrado na tabela
| - Output string de mesa
| # 255 BRANCO
| # 255 BRANCO
105h | 28 FF FF - adicionar a tabela
106h 103h | Incoming código não foi encontrado na tabela
106h | FF FF FF - adicionar a tabela
| - Output string de mesa
| # 255 BRANCO
| # 255 BRANCO
| # 255 BRANCO
107h 106h | Incoming código não foi encontrado na tabela
107h | FF FF FF FF - adicionar a tabela
| - Output string de mesa
| # 255 BRANCO
| # 255 BRANCO
| # 255 BRANCO
| # 255 BRANCO
101h | Fim
LZW código comprimentos
Comprimentos mais curtos código pode ser usado para paletas menor do que o 256 (máximo) cores no exemplo. O código tabela inicialmente contém códigos que são um pouco mais longo do que o tamanho paleta de forma a dar espaço adicional para dois códigos especiais CLR e final e para cordas que são adicionados durante o processo. Quando o quadro é o código completo comprimento aumenta para dar espaço para mais cordas, até um máximo código 4095 = FFF (hex). Como o descodificador constrói a sua tabela que acompanha estes aumentos de código de comprimento e é capaz de descompactar incoming
Não-comprimido. gif
A norma permite um codificador para inserir um "CLR" código em qualquer altura, a imagem de dados, o que permite implicitamente. Gif, a ser criado sem compressão LZW. A codificação tabela então nunca precisam crescer para além do "fim" código valor. Ao custo de maior tamanho do arquivo isto dá vantagens de codificação mais simples com uma correspondência de 1:1 pixels e paleta códigos, mantendo a compatibilidade com ordinário. Gif mostra. Tem sido utilizado para evitar infringir patentes abrangendo LZW. Para o exemplo 3X5 imagem acima, as seguintes 9 bits códigos representam "CLR" seguido de pixels na imagem para digitalizar e 'final'.
9-bit códigos: 100 028 0FF 0FF 0FF 028 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 0FF 101
Depois destes códigos são mapeados para bytes o arquivo compactado não difere do arquivo compactado, assim:
:
320: 14 20 20 bytes de dados não-imagem compactada Seguiu
321: 00 51 FC FB F7 0F C5 BF 7F FF FE FD FB F7 EF DF BF 7F 01 01
335: 00 - final
:
animado. gif
Um animado. Gif compreende uma série de imagens ou quadros a serem exibidos sucessivamente, cada um descrito por sua própria GCE (Graphic Control Extension), precedida por um cabeçalho cujo conteúdo, por padrão se aplica a todos os quadros. Após o cabeçalho de dados é orientada para o fluxo em vez de ser fixado em índices, para a localização do início de uma GCE depende do comprimento da anterior GCE (s). Dentro de um GCE o LZE-coded imagem dados são dispostos em cada um dos blocos de até 255 bytes, o tamanho do bloco é declarada por um byte que a antecede. Abaixo está a estrutura da animação rotativas terra (grande). Gif:
# byte hexadecimais texto ou
(hex) Valor Significado
0: 47 49 46
38 39 61 GIF89a Header
Logical Screen Descriptor
6: 90 01 400 - largura pixels
8: 90 01 400 - altura pixels
R: F7 - TCG segue 256 cores com resolução de 3 x 8bits/primary
B: 00 0 - cor # 0
C: 00 - aspecto rácio padrão
D: Global Color Table
:
30D: 21 FF 0B Application Extension
310: 4E 45 54
53 43 41
50 45 32
2E 30 NETSCAPE 2,0
31B: 03 01 - dados segue
31d: FF FF - loop animação
31F: 00 - final
320: 21 F9 04 Graphic Control Extension frame # 1
323: 08 - nenhuma transparência
324: 09 00 - 0,09 seg duração
325: 00 - sem cor transparente
327: 00 - final
328: 2C Image Descriptor
329: 00 00 00 00 (0,0) - scan pixels topo da esquerda ...
32D: 90 01 90 01 (400.400) - ... para a direita inferior
331: 00 - final
332: 08 8 min código LZW tamanho
333: FF 255 255 bytes LZW dados codificados imagem Seguiu
334: dados
433: FF 255 255 bytes de dados siga LZW codificados imagem
dados
:
92BA: 00 final
92BB: 21 F9 04 Graphic Control Extension moldura # 2
::
153B7B: 21 F9 04 Graphic Control Extension frame # 44
:
15CF35: 3B 1 429 301 arquivo termina
O GCEs permitir que a duração em que cada fotograma é exibido para ser especificado em centésimas de segundo. Alguns dados da economia é possível, quando um quadro só precisa de reescrever uma parcela dos pixels da tela, porque a imagem Descriptor pode definir um pequeno rectângulo de ser examinados novamente em vez de toda a imagem. Mostra que não suportam animados. Gifs mostrar apenas o primeiro frame.
Unisys e LZW patente execução
Em 1977 e 1978, Jacob Ziv e Abraham Lempel publicado um par de artigos sobre uma nova classe de algoritmos de compressão sem perda de dados, agora coletivamente referidos como "LZ77" e "LZ78". Em 1983, Terry Welch desenvolveu uma variante do LZ78 rápido que foi chamado LZW. [9] [10]
Welch apresentado um pedido de patente para o método LZW, em Junho de 1983. As patentes resultantes, E.U. patente 4558302, concedida em Dezembro de 1985, foi atribuído ao Sperry Corporation, que posteriormente se fundiu com Burroughs Corporation em 1986 e formou Unisys [9]. Outras patentes foram obtidos no Reino Unido, França, Alemanha, Itália, Japão e Canadá.
Em Junho de 1984, um artigo de Welch foi publicada na revista IEEE, que publicamente o LZW técnica descrita pela primeira vez [11]. LZW tornou popular uma técnica de compressão de dados e, quando a patente foi concedida, Unisys entrou em acordos de licenciamento com mais de uma centena de empresas. [9] [12]
A popularidade do LZW CompuServe levou a escolhê-lo como a sua técnica de compressão formato GIF, desenvolvido em 1987. Na época, CompuServe não tinha conhecimento da patente [9]. Unisys tornou consciente de que o formato GIF compressão LZW utilizada a técnica de licenciamento, e entrou em negociações com a CompuServe, em Janeiro de 1993. O acordo foi anunciado em subsequentes 24 de dezembro de 1994 [10]. Unisys declarou que espera que todos os principais comerciais de informação em linha de serviços a empresas que empregam LZW patente de licenciar a tecnologia da Unisys, a uma taxa razoável, mas que não necessitam de licenciamento , ou taxas a serem pagas, para os não-comercial, sem fins lucrativos baseada em GIF aplicações, incluindo aquelas para uso sobre a serviços on-line [12].
Na sequência deste anúncio, houve ampla condenação do CompuServe e Unisys, e muitos programadores ameaçou parar de usar o formato GIF. O formato PNG (veja abaixo) foi desenvolvido em 1995 como uma destinados substituição. [9] [10] [11] No entanto, a obtenção de apoio dos fabricantes de navegadores da Web e outros softwares para o formato PNG revelado difícil e não foi possível substituir o formato GIF, PNG, embora tenha aumentado gradualmente na popularidade [9].
Em Agosto de 1999, Unisys alterou os detalhes de suas práticas de licenciamento, anunciando a possibilidade de os proprietários de líquido intra Billboard e Web sites para obter licenças mediante pagamento de uma licença de tempo de uma taxa de $ 5,000 ou US $ 7.500. [13] Essas licenças não eram necessárias dos proprietários de sites que GIF ou outros usuários que tinham utilizado software licenciado para gerar GIFs. No entanto, Unisys foi o tema de milhares de ataques on-line e e-mails de usuários abusivos acreditando que eles estavam indo a ser cobrado $ 5.000 ou processado por usar GIFs em seus sites. [14] Apesar de dar licenças livres de centenas de organizações sem fins lucrativos, escolas e governos, Unisys foi totalmente incapaz de gerar qualquer boa publicidade e continuou a ser vilified por indivíduos e organizações como a Liga para a Liberdade de programação, que começou a "Burn All GIFs" campanha [15].
Os E.U. LZW patente expirou em 20 de junho de 2003. [16] A contrapartida patentes no Reino Unido, França, Alemanha e Itália terminou em 18 de junho de 2004, os japoneses homólogo patentes expirou em 20 de junho de 2004 e ao homólogo canadiano patente expirou 7 de Julho de 2004. [16] Assim, enquanto a Unisys tem mais patentes e os pedidos de patentes relativas a melhorias do LZW técnica, [16], o formato GIF pode agora ser utilizado livremente.
PNG e outras alternativas
Portable Network Graphics (PNG) foi concebido como um substituto para o formato GIF, a fim de evitar a violação da Unisys' patente sobre a compressão LZW técnica [9]. PNG oferece melhor compressão e mais recursos do que GIF. [Citação necessários] O formato é mais adequado do que nos casos em que o MIC-cor verdadeira imagem e alfa transparência são obrigatórios. MNG foi originalmente desenvolvida como uma solução baseada PNG para animações, mas não tem sido amplamente adotada. O formato GIF é ainda preferida para animação durante PNG, embora verdade Animated Portable Network Graphics estão em desenvolvimento e são suportados pela Mozilla no Firefox 3. [17] [18]
Embora não teve tempo para o formato PNG para ser apoiado, apoiar os novos navegadores formato PNG e GIF imagens geralmente pode ser substituído por imagens PNG se desejado. No entanto, o Internet Explorer 6 e versões anteriores não suportam PNG's canal alfa transparência sem recurso usando o Microsoft HTML específicos de extensões. [19] Usando tags HTML padrão para imagens PNG no Internet Explorer pode gerar um olhar diferente do que pretendia. Internet Explorer 7 suporta canal alfa transparência sem precisar extensões. Não versões do Internet Explorer, no entanto, apoiar a gama característica de imagens PNG, ea exposição destas imagens pode ser do mal matiz [20].
PNG ficheiros são geralmente menores que GIF ficheiros da mesma qualidade de imagem, devido à compressão mais eficientes técnicas utilizadas na codificação PNG. [Citação necessários] arquivos PNG podem efectivamente ser muito maior do que arquivos GIF em situações em que um e um GIF PNG foram criadas a partir de uma imagem de alta qualidade mestre, como PNG é capaz de armazenar mais cor e transparência informação do GIF. No entanto, para idêntico 8-bits (ou inferior) imagem dados, PNG em formato de arquivos de imagem estão quase sempre menor do que o equivalente GIF. Desinformação sobre PNG eficiência geralmente podem ser rastreada até pobre PNG apoio em versões mais antigas de alguns programas da manipulação da imagem (por exemplo, Adobe Photoshop não otimizar PNGs reduzida para paletas de cores por omissão). [Citação necessários] A solução é trabalhar pngcrush. Geralmente pode-se notar também que um bom apoio (animated) GIF é difícil: lona complicado, redundante cor entradas de dicionário resets. [Esclarecimentos necessários] Observe também a complicada interação entre cor quantização, compressão (especialmente em animações) e dithering notar em referência com a antiga é obsoleto com PNG. [esclarecimentos necessários]
Em 2004, uma proposta de extensão ao formato PNG chamados APNG foi sugerida. Foi para proporcionar a capacidade de animar arquivos PNG, mantendo a compatibilidade para trás em descodificadores que não pode compreender a animação chunk. Older descodificadores simplesmente tornar o primeiro quadro da animação. MNG, uma variante do PNG que suporta animação, chegou a versão 1.0 em 2001, mas poucas aplicações apoiá-lo. Animated GIF permanece amplamente utilizado como muitos aplicativos são capazes de criar os arquivos, e ele continua a ser a única imagem animada formato capaz de ser prestados em quase todos os navegadores modernos, sem a utilização de um plug-in [21]. No entanto, objetos flash embutido , mpegs e outros formatos de vídeo são usados em lugar de GIFs animados em muitos sites. Outras abordagens, como as molduras individuais servidos por AJAX, SVG ou as imagens podem ser animadas através de JavaScript.
Ver também
* Comparação dos formatos de arquivos gráficos
* Comparação dos motores de layout (gráficos)
* Imagem formatos de arquivo
* Software patente
Referências
1. ^ "Folha de Capa para o GIF89a Specification". W3C. 31 de julho de 1990. http://www.w3.org/Graphics/GIF/spec-gif89a.txt. Retirado em 6 de Março de 2009.
2. ^ Olsen, Steve. "O MIC Pronunciação Page". http://www.olsenhome.com/gif/. Retirado em 6 de Março de 2009. "CompuServe usado para distribuir um programa chamado CompuShow exibição gráfica. A documentação para versão 8,33 na seção de FAQ, afirma: O GIF (Graphics Interchange Format), pronunciado" JIF ", foi concebido pelo CompuServe e da especificação oficial divulgado em junho de 1987. "
3. ^ "Dicionário Oxford Inglês". Oxford University Press. http://dictionary.oed.com/cgi/entry/50292950?query_type=word&queryword=gif&first=1&max_to_show=10&sort_type=alpha&result_place=1&search_id=kUF6-h25mk9-6375&hilite=50292950. Obtido em 2007/04/15.
4. ^ "American Heritage Dictionary". Houghton-Mifflin. http://dictionary.reference.com/browse/GIF. Obtido em 2007/04/15.
5. ^ GIF 24 Bit (TrueColor) prorrogações
6. ^ Itsagif Camadas
7. ^ Este método é demonstrado por Pedagoguery do Software Itsagif software para Windows e Macintosh mais antigos SOs.
8. ^ Este método é explicado em detalhe por Andreas Kleinert na sua GIF 24 Bit (TrueColor) extensões documento, e está demonstrada em Philip Howard's True Color-GIF Exemplo página Web, que utiliza o seu angif C biblioteca. A demonstração utiliza blocos de tamanho 16 por 16 pixels, permitindo até 256 cores únicas, 1 por pixel, o máximo de cada bloco da paleta pode apoiar.
9. ^ Abcdefg História do PNG (Portable Network Graphics) Formato por Greg Roelofs
10. ^ B c um dia triste ... GIF patente morto em 20
11. ^ Ab O MIC Controvérsia: A Software Developer's Perspective
12. ^ Ab Unisys Esclarece Política Quanto Patente Uso em On-Line Service Offerings - arquivados pela Liga para a Liberdade de programação
13. ^ LZW Informação Software e Patentes - clarificação de 2 de Setembro de 1999
14. ^ Unisys Não suing (máximo) para Webmasters Usando GIFs - Slashdot inquérito sobre a controvérsia
15. ^ Burn All GIFs - Um projecto da Liga para a Liberdade de programação
16. ^ Abc License Outras Informações sobre o GIF e LZW-based Technologies
17. ^ APNG Especificação - MozillaWiki
18. ^ Mozilla Labs »Blog Archive» Melhor animações no Firefox 3
19. ^ AlphaImageLoader Filtro
20. ^ "O que há de novo no Internet Explorer 7". MSDN. http://msdn.microsoft.com/en-us/library/ms649487% 28VS.85% 29.aspx. Retirado em 6 de Março de 2009.
21. ^ Staples, Tanya; Weinman, Lynda (2005). Adobe Photoshop CS2 para a Web: Hands-on Training. Peachpit Press.
Ligações externas
Irmã projeto Wikimedia Commons possui meios relacionados a: GIF
* GIF89a especificação
* O MIC Pronúncia Page
* LZW GIF decodificação por Arturo San Emeterio Campos
* LZW e GIF explicado
* Substituir um dicionário com uma raiz quadrada - sugestões para comprimir GIFs sem utilizar compressão LZW
* Web Graphics discute e ilustra as diferenças entre GIF, JPEG e PNG
v • d • e
Multimedia formatos de compressão
Vídeo compressão
ISO / IEC
Motion JPEG 2000 MJPEG MPEG-1 MPEG-2 MPEG-4 ASP MPEG-4/AVC
ITU-T
H.120 H.261 H.262 H.263 H.264 H.265
Outros
AMV AVS Bink Dirac Indeo Pixlet RealVideo RTVideo SheerVideo Smacker Theora VC-1 VP6 VP7 VP8 WMV XVD
Compressão de áudio
ISO / IEC
MPEG-1 Layer III (MP3) MPEG-1 Layer II MPEG-1 Layer I AAC HE-AAC
ITU-T
G.711 · G.718 · G.719 · G.722 · G.722.1 · G.722.2 · G.723 · G.723.1 · G.726 · G.728 · G.729 · G.729.1 · G.729a
Others
AC3 · AMR · Apple Lossless · ATRAC · DRA · FLAC · iLBC · Monkey's Audio · μ-law · Musepack · Nellymoser · OptimFROG · RealAudio · RTAudio · SHN · Siren · Speex · Vorbis · WavPack · WMA · TAK · True Audio
Image compression
ISO/IEC/ITU-T
JPEG · JPEG 2000 · lossless JPEG · JBIG · JBIG2 · PNG · WBMP
Others
APNG · BMP · EXR · GIF · ICER · ILBM · MNG · PCX · PGF · TGA · TIFF · JPEG XR / HD Photo
Media containers
Geral
3GP · ASF · AVI · Bink · BXF · DMF · DPX · EVO · FLV · VVF · Matroska · MPEG-PS · MPEG-TS · MP4 · MXF · Ogg · Ogg Media · QuickTime · RealMedia · Smacker · RIFF · VOB
Audio only
AIFF · AU · WAV
See Compression Methods for methods and Compression Software Implementations for codecs
Retrieved from "http://en.wikipedia.org/wiki/Graphics_Interchange_Format"
Categories: Graphics file formats | CompuServe
****************************
Origem: Wikipédia, a enciclopédia livre