\chapter{gif89a}\index{gif89a}
\label{chap:gif89a}

Ah, enfin nous arrivons à un sujet \textbf{vraiment} important :
la confection d'images qui clignotent. Ça va aussi être l'occasion
de plonger un peu dans l'histoire du siècle dernier. Nous allons
parler de Compuserve\index{Compuserve} que seul les plus anciens
d'entre vous on pu connaitre.

\begin{quote}
\textsl{Wikipedia} :
CompuServe (ou CompuServe Information Services, ou CIS), est le
premier des grands fournisseurs de services en ligne aux États-Unis.
Il domine le marché pendant les années 1980 puis reste un acteur
important au milieu des années 1990.
\end{quote}

Voilà pour expliquer brièvement d'où sort ce fameux format \textsc{gif}.
À l'époque, les moyens de connexion étaient beauuucoup plus lents que
ce que nous connaissons en 2020\footnote{Une fscking mauvaise année},
mais les écrans graphiques commençaient à bien se répandre, et certains
pouvaient même afficher {\em 256  couleurs}~:

\begin{quote}
L'entreprise est aussi connue pour avoir mis au point un format d'image
numérique très répandu, le GIF\index{GIF}, en 1987.
\end{quote}

Deux ans plus tard, le public demandant de plus en plus d'images
épileptisante, une extension de ce format fut crée,
et reçu le petit nom
de \textsc{gif89a}. Il y a toujours la limitation à 256 couleurs
et un seul niveau de transparence. Contraintes qui n'étaient pas si
génantes que ça à l'époque vu les terminaux visés.
Contraintes qu'un artiste numérique peut comprendre et accepter.

% ==================================================================

\section{Création}

Avec la commande \texttt{convert} d'ImageMagick,
on peut, à partir d'une suite
d'image, créer une gif89a qui tourne en boucle~:

\begin{verbatim}
convert -delay 20 -loop 0 a.png b.png c.png foo.gif
\end{verbatim}

Le \textsl{delay} est exprimé en millisecondes. On peut aussi
rajouter l'option \texttt{-loop nnn}\footnote{aka: add Netscape loop
extension to your GIF animation} avec nnn qui est le nombre de
boucle que doit faire l'animation. La valeur 0 demandant une
boucle infinie. Deux fois\footnote{Vous connaissez Chuck Norris ?}.

Et ensuite, vouv pouvez voir votre logo en flamme avec la 
commande \texttt{animate foo.gif}  sur votre super écran
(s)vga\index{VGA} 14 pouces.

Je pense\footnote{Avis personnel d'après ma louche.} que la compression
de cette commande n'est pas optimale, peut-être parce qu'elle
n'utilise pas les \textsl{subblocs} que permet ce format.

% ==================================================================

\section{Manipulation}

XXX\index{XXX}

% ==================================================================

\section{Exemples pratiques}

Dans un Makefile\footnote{Les makefiles, c'est le bien !}~:

\begin{verbatim}
indoor.gif:	$(DEPS)
    convert                                             \
        `ls -rt1 frames/indoor/????.png | tail -99`     \
        -delay 120                                      \
        -resize 28%                                     \
        -normalize                                      \
        -colorspace gray                                \
        -colors 31                                      \
        -dither none                                    \
        $@
\end{verbatim}



% ==================================================================

\section{gifsicle}

'Gifsicle' manipulates GIF images. Its most common uses include combining
single images into animations, adding transparency, optimizing animations for
space, and printing information about GIFs.



% ==================================================================


