TetaTricks/chap/gif89a.tex
2023-11-29 14:12:03 +01:00

103 lines
3.6 KiB
TeX

\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.
% ==================================================================