\documentclass{beamer}
%\documentclass[hyperref={pdfpagelabels=false}]{beamer} % Provoque une erreur de compilation. Voir si nécessaire.
%\documentclass[hyperref={pdfpagelabels=false,notes}]{beamer}	% Si on veut mettre des notes

\usepackage[light]{kpfonts}
\usepackage[T1]{fontenc}
\usepackage[utf8]{inputenc}		% écrire avec les accents
\usepackage[french]{babel}
\usepackage{multimedia}
\usepackage{graphicx}
\usepackage{color}
\usepackage{epsfig}
\usepackage{url}
\usepackage{endnotes}
\renewcommand{\notesname}{Crédits photographiques}
\renewcommand{\enotesize}{\tiny}
\usepackage{float}
%\usepackage{movie15}			% pour mettre des animations
%\usepackage{hyperref}			% en fait beamer inclut automatiquement hyperref
\graphicspath{{./Images/}{./Videos/}}
\title[Informatique]{Option complémentaire d'informatique}
%\author{Des structures aux mouvements}
\institute{Lycée Blaise Cendrars}
\date{\today}
\usetheme{Warsaw}
\definecolor{Fond}{rgb}{0.6,0.6,0.9}
\beamertemplatesolidbackgroundcolor{Fond}
\mode<presentation>
\usepackage{tabularx}
\usepackage{array}
\usepackage{amssymb}
\usepackage{textcomp}
\usepackage{verbatim}
\usepackage{listings}
\lstloadlanguages{HTML,TeX,XML}
\usepackage{fancybox}
\usepackage{multirow}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{array}
\usepackage{textcomp}
%\usepackage{colorlinks=true,urlcolor=blue}{hyperref} % inutile car beamer le contient déjà
\usepackage{etex}
\usepackage[all,2cell]{xy}
\UseAllTwocells

\def\hilite<#1>{\temporal<#1>{\color{gray}}{\color{blue}}{\color{blue!25}}}

\begin{document}

\begin{frame}
\titlepage
\end{frame}

\AtBeginSubsection[]
{
\begin{frame}
    \frametitle{Table des matières}
   \begin{columns}[t]
    \begin{column}{5cm}
     \tableofcontents[sections={1},currentsection,currentsubsection]
    \end{column}
    \begin{column}{5cm}
     \tableofcontents[sections={2},currentsection,currentsubsection]
    \end{column}
   \end{columns}
\end{frame}
}

\section{Notions fondamentales (DF)}

\subsection{Problématique}

\begin{frame}{Interdisciplinarité}
\begin{columns}
\begin{column}{3cm}
En quoi l'informatique est-elle une science interdisciplinaire ?
\end{column}
\begin{column}{7cm}
\begin{block}{Option complémentaire}
\begin{itemize}
\item Mathématiciens-physiciens.
\item Chimistes-biologistes.
\item Arts-visuels, musiciens, ...
\end{itemize}
\end{block}
\begin{block}{Nécessité}
\begin{description}[Base de donnée]
\item [Programmation] Pour le plaisir ?
\item [Base de donnée] Herbiers ou classifications d'espèces (biologie) ?
\item [Graphisme] Traitement de l'image, images 3D ?
\end{description}
\end{block}
\end{column}
\end{columns}
\note<1>{Ceci est ma première note.}
\end{frame}

%\begin{frame}{Qu'est-ce que l'univers ?}
%
%La réponse de Newton est :
%\begin{align*}
%MRU \Longleftrightarrow \sum{\overrightarrow{F}}&=0\\
%\sum{\overrightarrow{F}}&=m\cdot \overrightarrow{a}\\
%\overrightarrow{Action}&=-\overrightarrow{R\acute eaction}\\
%\overrightarrow{F}&=G\cdot \frac{M\cdot m}{r^3}\cdot \overrightarrow{r}
%\end{align*}
%
%La réponse d'Einstein est :
%\[R_{\mu\nu}-\frac{1}{2}\cdot g_{\mu\nu}\cdot R-\Lambda\cdot g_{\mu\nu}=\frac{8\cdot \pi\cdot G}{c^4}\cdot %T_{\mu\nu}\]
%
%%\href{run:galaxiesinterr.mpg}{\beamerbutton{Galaxies en interraction}}
%%\href{run:xine}{\beamerbutton{Galaxies en interraction}}
%%\movie{%\includegraphics[width=.25\textwidth]{ChiensChasse.eps}}{galaxiesinterr.mpg}
%%\movie[width=3cm,height=2cm,externalviewer]{%\includegraphics[width=.25\textwidth]{ChiensChasse.eps}}{galaxiesinterr.mpg}
%%\movie[width=3cm,height=2cm]{%\includegraphics[width=.25\textwidth]{ChiensChasse.eps}}{galaxiesinterr.mpg}
%
%\end{frame}

\begin{frame}{Machines}
\begin{columns}
\begin{column}{6cm}
\includegraphics[width=3cm]{Irobot.eps}\includegraphics[width=3cm]{Phoenix_on_the_Red_Planet.eps}\\
\includegraphics[width=3cm]{Irobot1.eps}\includegraphics[width=3cm]{Irobot2.eps}
\end{column}
\begin{column}{5cm}
{\Large Informatique-Robotique.}

\smallskip
Où s'arrêter ?

\medskip
{\scriptsize En haut à gauche :}

Ph\oe nix sur Mars\endnote{Wikipedia : \url{http://commons.wikimedia.org/wiki/File:Phoenix\_on\_the\_Red\_Planet.jpg}}.

{\scriptsize En bas :}

Aspirateur-récureur iRobot\up\textcopyright.
\end{column}
\end{columns}
\end{frame}

%\begin{frame}{IRobots : Moderne-ancien ?}
%\begin{columns}
%\begin{column}{0.4\textwidth}
%\begin{block}{Moderne}
%\begin{itemize}
%\item Robot
%\item Poli
%\item Utile

%(promène les chiens, vide les poubelles ; bras robotisé)
%\item Fiable
%\item Obéissant : trois lois
%\item Symbole de richesse
%\end{itemize}
%\end{block}
%\end{column}
%\begin{column}{0.6\textwidth}
%\begin{block}{Ancien}
%\begin{itemize}
%\item Chaussures Converses all star 2004
%\item ``Hors de ma vue tas de ferraille.''
%\item ``Les robots, cela n'a jamais rien rapporté aux hommes.''
%\item Non fiable, l'inspecteur se trompe
%\item ``Les lois sont faites pour qu'on leur désobéisse.''
%\item La mère de l'inspecteur doit gagner son NS5
%\end{itemize}
%\end{block}
%\end{column}
%\end{columns}
%\end{frame}

%\begin{frame}{IRobots : les problèmes}
%\begin{columns}
%\begin{column}{0.5\textwidth}
%\begin{block}{Intégration des machines}
%\small ``Votre père a été licencié au profit d'un robot''

%\tiny Voiture, ascenseur, machine à laver, machines outils, \dots{}

%\small ``De la conception à la fabrication aucune présence humaine : quelle idée stupide''
%\end{block}

%\begin{block}{Qu'est qu'une machine}
%\small Les robots doivent-ils ressembler aux humains ?

%\tiny ``C'est quoi ce regard ? C'est ma tête, c'est pas un regard !''
%Hair : ``Mes cheveux c'est moi, je ne veux pas qu'on les coupe.''
%Les robots ont tous un même regard, ont-ils une tête ?
%Ce qui fait l'homme, est-ce la différence ?
%\end{block}
%\end{column}
%\begin{column}{0.5\textwidth}
%\begin{block}{Artificiel-naturel}
%\small ``Vous n'aimez pas leur espèce''

%\smallskip
%Les émotions sont le propre de l'homme : la colère, le rêve, la confiance, \dots{} le rire ? (voir \emph{Le nom de la rose})

%\smallskip
%``Un robot peut-il écrire une symphonie ? Et vous inspecteur ?''

%\smallskip
%\scriptsize ``Il y a toujours eu des fantômes dans la machine, des segments aléatoires de code qui se sont regroupé pour former des protocoles imprévus. Ces radicaux libres posent le problème du libre arbitre et même de ce qu'on pourrait appeler l'âme.''
%\end{block}
%\end{column}
%\end{columns}
%\end{frame}

%\begin{frame}
%\begin{block}{Imprévu}
%L'imprévu existera toujours, autant chez les machines que chez l'homme.
%\end{block}

%\begin{block}{Responsabilité}
%La question de déterminer la responsabilité face à l'imprévu se pose donc.

%``Un meurtre peut-il être attribué à une machine ? Non, tout au plus s'agit-il d'un accident industriel !''

%Toutes les licences ``déclinent toute responsabilité \dots{}''
%\end{block}
%\end{frame}}

\begin{frame}{Variétés}
\begin{columns}
\begin{column}{5cm}
\includegraphics[width=2cm]{Davinci.eps}\\
\includegraphics[width=2cm]{smartphones-image.eps}
\includegraphics[width=2cm]{feux_circulation.eps} 
\end{column}
\begin{column}{5cm}
Les domaines de l'informatique sont infinis :
\begin{itemize}
\item Téléphonie.
\item Paiements.
\item Gestion des billets.
\item Gestion des traffics.
\item Analyse de l'information.
\item \dots
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{\large ``Rien n'est jamais acquis à l'homme\dots''.}

\begin{block}{}
Science des réseaux, toute informatique se situe dans un \emph{contexte}.
\end{block}

\begin{columns}
\begin{column}{5.1cm}
\begin{block}{Exemples}
\small
\begin{itemize}
 \item Sauvegardes chez un particulier ou en entreprise.
 \item Déploiement d'un ensemble de machines.
 \item Installation en période de crise économique.
 \item Pérénité d'un groupe de programmeurs.
\end{itemize}
\end{block}
\end{column}
\begin{column}{5.1cm}
\pause\begin{block}{Difficultés}
\small
\begin{itemize}
 \item Coût du matériel.
 \item Pérénité des solutions (obsolescence programmée...).
 \item Stabilité du système (serveurs web).
 \item Sécurisation matérielle et logicielle, protection des données.
\end{itemize}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Évolution}
\begin{block}{Informatique}
Le lièvre et la tortue ou le renard et le hérisson \dots
\end{block}

\begin{block}{Lièvre ou tortue}
\centering
Évolution technique très rapide

\(\downdownarrows\;\upuparrows\)

Besoins réels stables
\end{block}
\begin{block}{Renard ou hérisson}
\centering
Évolution inexorable

\(\downdownarrows\;\upuparrows\)

Stabilité nécessaire
\end{block}
\end{frame}

\begin{frame}{Contexte de l'Option Complémentaire}
\begin{columns}
\begin{column}{5.1cm}
\begin{enumerate}
\item
\begin{itemize}
\item Genève : Logiciels libres.
\item Vaud : MacOS\up\textcopyright.
\item Neuchatel : Windows\up\textcopyright.
\end{itemize}
\item Crise économique mondiale et cantonale \(\Rightarrow\) Crédits zéro  en 2010.
\item Compétences présentes en informatiques au lycée : \textsc{linux et macOS\up\textcopyright}.
\item Contexte éducatif et coopératif.
\end{enumerate}
\end{column}
\(\Leftrightarrow\)\hspace{0.5cm}
\begin{column}{5cm}
\pause\begin{block}{Choix : logiciels libres}
Système d'exploitation : Linux.

Distribution : Debian ou LinuxMint.

Machines : récupération Dell ou machines montées par l'école d'ingénieurs.

Libre accès : sans risque légaux (piratage), utilisables sur toutes les plates-formes.
\end{block}
\end{column}
\end{columns}
\end{frame}

\subsection{Systèmes d'exploitation}

\begin{frame}{Systèmes d'exploitations}
\begin{block}{OS : operating system}
Ce qui fait fonctionner l'ordinateur ; interface entre le matériel et l'utilisateur.
\end{block}

\begin{block}{Principaux OS}
\begin{tabular}{lll}

\color{red} Windows & \color{red}MacOS\up\textcopyright & \color{red}Linux\up\textcopyleft \\ 

Installé par défaut & Installé par défaut  & De type Unix  \\ 

ou acheté en pack & sur machine Apple & installable "partout"\\
 
Payant & Payant & Gratuit\\


\end{tabular} 

\end{block}
\end{frame}

\begin{frame}{Systèmes d'exploitation propriétaires}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Mac OS\up\textcopyright}
Originalité : Concepteur d'ordinateur (hardware) et de système d'exploitation (software).

\medskip
Depuis Mac OS X, système de type UNIX très proche de Linux. Seule l'interface graphique est propre à Macintosh. Beaucoup des logiciels intégrés sont des logiciels libres : apache, samba, openoffice, gimp, \dots{}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Windows\up\textcopyright}
Windows\up\textcopyright se décline en XP, Seven et 8, orientée pc-tablettes.

XP aurait du être abandonné, mais il a été récupéré pour investir le domaine des ultraportables et pour palier au peu de succès de Vista qui n'a pas été la réussite attendue.
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Architectures}
L'ensemble des logiciels d'un ordinateur se décompose dans deux espaces : l'espace noyau -- l'espace utilisateur
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Micronoyau}
\centering \includegraphics[width=5cm]{Architecture_micro-noyau.eps}

Noyau des système

Windows\up\textcopyright et MacOSX\up\textcopyright\endnote{\url{http://fr.wikipedia.org/wiki/Fichier:Architecture\_micro-noyau.png}}.
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Noyau monolitique}
\centering \includegraphics[width=5cm]{Architecture_noyau-monolithique.eps}

Noyau du système Linux\endnote{\url{http://upload.wikimedia.org/wikipedia/fr/f/f9/Architecture\_noyau-monolithique.png}}.
\end{block}
\end{column}
\end{columns}
\end{frame}

\subsection{Licences}

\begin{frame}[containsverbatim]{Binaire - Source\hypertarget{ouvertureducode}{}}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Binaire}
Un ordinateur ne comprend que les zéros et uns dont est composé un fichier binaire.

\smallskip
0100010 1001010 01010001 10010001010000101
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Source}
Un programme s'écrit dans un langage compréhensible par l'homme et est traduit par un compilateur en binaire.

\begin{lstlisting}[basicstyle=\tiny]
if (argent = bonheur)
  then (1/3 population = triste)
\end{lstlisting}
\end{block}
\end{column}
\end{columns}

\bigskip
Exemple de l'utilité de l'ouverture du code source : \hyperlink{projettelescopique}{\beamerbutton{Projet télescopique}}
\end{frame}

\begin{frame}{Licences}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Licences propriétaires}
Les logiciels peuvent uniquement être utilisés.

Ils ne peuvent pas être étudiés.

Ils restent la propriété de leur concepteurs.
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Licences libres}
Le code des logiciels peut être étudié.

Il peut être modifié, amélioré et réutilisé.

Le code appartient à la communauté.
\end{block}
\end{column}
\end{columns}

\medskip
Propriétaires ou libres, il existe beaucoup de type de licences.

{ Dans le domaine du libre, les plus connues sont la GPL (licence publique générale) et les Creatives Commons. Relevons aussi que Windows\up\textcopyright et MacOS\up\textcopyright sont sous licence propriétaire, malgré l'utilisation par Mac d'un micronoyau Mach enrichi par un noyau BSD (licence BSD).}
\end{frame}


\begin{frame}{Free Software Foundation (FSF-GNU), licences libres}

\begin{block}{Quatre libertés}
\begin{description}
\item[Liberté 0] La liberté d'exécuter le programme — pour tous les usages ;
\item[Liberté 1] La liberté d'étudier le fonctionnement du programme — ce qui suppose l'accès au code source ;
\item[Liberté 2] La liberté de redistribuer des copies — ce qui comprend la liberté de vendre des copies ;
\item[Liberté 3] La liberté d'améliorer le programme et de publier ses améliorations — ce qui suppose, là encore, l'accès au code source.
\end{description}
\end{block}
\end{frame}


\begin{frame}{Libertés}
\begin{itemize}\small
\item La liberté 3 encourage la création d'une communauté de développeurs améliorant le logiciel et permet le fork.
\item « Libre » ne doit pas être compris comme « gratuit ». Chacun a le droit de redistribuer gratuitement ou non un logiciel libre.
\item Ces libertés doivent être irrévocables.
\begin{itemize}
\item possibilité d'en jouir sans devoir prévenir un tiers ;
\item possibilité de redistribuer le programme sous toute forme, notamment compilée ;
\item le code source doit être accessible pour jouir des libertés d'étude et d'amélioration ;
\item possibilité de fusionner des logiciels libres dont on n'est pas soi-même l'auteur\endnote{Wikipedia : \url{http://fr.wikipedia.org/wiki/Logiciels\_libres}}.
\end{itemize}
\end{itemize}
\end{frame}

\begin{frame}{GNU-Linux}
\begin{block}{}
\begin{description}
\item[GNU] Gnu is Not Unix. Richard Stallman crée la première licence libre. Il n'admettait pas de disposer d'une imprimante dont le logiciel ne fonctionnait pas, mais qu'il lui était interdit de corriger pour des raisons de licence.
\item[Linux] Linus Torvalds crée le noyau de ce qu'il nomme Lin-u-x. Il s'agit d'un noyau créé de tout pièces sur le modèle des systèmes d'exploitation UNIX de l'époque.
\item[GNU-Linux] est constitué d'un noyau monolitique et d'un ensemble de logiciels libres.
\end{description}
\end{block}
\end{frame}

\begin{frame}{Distributions Linux\up\textcopyleft}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Base .deb}
\begin{description}[Ubuntu]
\item[Debian] Système totalement libre : refus d'intégrer du code source sous licence non libre.
\item[Ubuntu] Système dérivé de Debian, mais se permettant si nécessaire d'intégrer du code non libre.
\item[LinuxMint] Système dérivé de Ubuntu.
\end{description}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Base .rpm}
\begin{description}[Mandriva]
\item[Redhat] Système orienté entreprises, payant.
\item[Mandrake] Système d'origine française.
\item[OpenSuSe] Système d'origine allemande.
\end{description}
\end{block}
\end{column}
\end{columns}
\end{frame}

\subsection{Applications}

\begin{frame}{Logiciels}
\emph{Quelques exemples}

\bigskip
\begin{columns}
\begin{column}{0.3\textwidth}
\begin{description}[Texte]
\item[Texte] OpenOffice (fork libreoffice), Scribus, Latex, \dots{}
\item[Image] Gimp, Digikam, ImageMagik, \dots{}
\end{description}
\end{column}
\begin{column}{0.3\textwidth}
\begin{description}[Code]
\item[Code] Perl, Python, C, \dots{}
\item[Web] Firefox, Apache, Textpattern, \dots{}
\item[Bases] MySql, \dots{}
\end{description}
\end{column}
\begin{column}{0.3\textwidth}
\begin{description}[Astro]
\item[Astro] Celestia, Kstar, Stellarium, \dots{}
\item[Mail] Thunderbird, Kmail, Evolution, \dots{}
\end{description}
\end{column}
\end{columns}
\end{frame}

\subsection{Matériel}


\subsection{Services}


\section{Notions complémentaires (OC)}

\subsection{Introduction}


\subsection{Le texte}

\begin{frame}[containsverbatim]{Texte et codage}
\centering Caractères \(\leftrightarrows\) table des caractères

\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{\small Norme ISO \tiny (International Organization for Standardization)}
\tiny Dérivée des 128 caractères codés de 0 à 127, soit en binaire de 0000000 à 1111111 du codage ASCII (merican Standard Code for Information Interchange).

\smallskip
\fbox{
\begin{minipage}{5cm}
\scriptsize Huit bit, soit un octet ; correspond à l'ISO-8859-1 ou latin 1. Codage jusqu'à 256 caractères.
\end{minipage}
}

\smallskip
\tiny Le latin-0 et le latin-1, ISO 8859-1 et ISO 8859-15, décrivent les caractères de l'Europe de l'ouest, avec ou sans le carcatère de l'euro.
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{\small Norme UTF \tiny (Universal coded character set Transformation Format)}
\small \color{red} Table de codage unique : ``Unicode''.

\tiny \color{black} Elle sépare la représentation du caractère du codage lui-même par l'intermédiaire d'un index numérique nomé \emph{point de code}. Celui-ci s'écrit \verb=U+nombre_hexadécimal=. Les caractères correspondant au latin de base se trouvent entre les points de code 0000 et 007F, ce qui correspond en décimal à un index de 0 à 127, c'est-à-dire aux caractères ASCII.
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Codage et glyphes}
A un caractère correspond un seul point de code, mais peut correspondre plusieurs glyphes.

\smallskip
\begin{columns}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=5.5cm]{Libertine.eps}
\end{column}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=4.5cm]{Glyphe.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Fontes -- bésier -- bitmap}
\centering Fontes vectorielles -- Fontes bitmap

Postscript, truetype -- bdf

\tiny Un fichier, plusieurs fontes anti-aliasées -- Un fichier, une seule fonte non anti-aliasée

\small
\medskip
\begin{columns}
\begin{column}{0.3\textwidth}
Courbe de bésier

\smallskip
\centering \includegraphics[width=3.5cm]{BesierM.eps}
\end{column}
\begin{column}{0.3\textwidth}
Représentation bitmap

\smallskip
\centering \includegraphics[width=3.5cm]{BitmapM.eps}
\end{column}
\begin{column}{0.3\textwidth}
Anti-aliasing et hinting

\smallskip
\centering \includegraphics[width=3.5cm]{AntiAliasingM.eps}
\end{column}
\end{columns}
Autres problèmes rencontrés : gestion des crénages (ex.: Tc).
\end{frame}


\begin{frame}{Moteur de rendu de fontes}
\Large Le rendu des fontes se fait automatiquement au moment de la frappe de chaque caractère !!!

\bigskip
\normalsize Reste à créer vos propre glyphes :

\small avec ou sans empattement -- avec ou sans serif -- à taille fixe ou pas

\begin{center}\LARGE \sffamily AaBbCcFcTe \rmfamily AaBbCcFcTe \ttfamily AaBbCcFcTe\end{center}
\end{frame}


\begin{frame}[containsverbatim]{Traitements de texte}
Objectifs : mettre en forme du texte.
Moyens dépendant du contexte :
\begin{itemize}
\item \textbf{Traitements de texte Wysiwyg} (What You See Is What You Get) (Word\up\textcopyright, OpenOffice, Scribus, \dots) : soulignés, gras, italique, etc.

\smallskip
\emph{Affiches et petits documents.}
\item \textbf{Traitements de texte balisés} (xhtml, latex, XML, \dots) : \verb|<p align=``center''> texte </p>|, \verb=\begin{center} texte \end{center}=, etc.

\smallskip
\emph{Internet, long documents, documentation.}
\end{itemize}
\end{frame}

\begin{frame}{Scribus}
\begin{description}
\item[Domaine :] arts graphiques, affiches, revues, journaux.
\item[Idée :] aide au positionnement des images, répartition du texte dans des blocs dépendants.
\end{description}
\begin{columns}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=5.5cm]{Scribus.eps}
\end{column}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=5.5cm]{aqua.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{OpenOffice\hypertarget{OOstylesretour}{}}
Traitement de texte classique. Bien que \dots{}

\begin{center}
\includegraphics[width=6cm]{writer.eps}
\end{center}

Gestion avancée des styles, références, bibliographie, index, \dots{}

\hyperlink{OOstyles}{\beamerbutton{OpenOffice avec styles}}
\end{frame}

\begin{frame}{Latex}
Traitement de texte haute qualité :

gestion professionnelle automatique de la typographie.

\smallskip
\begin{columns}
\begin{column}{0.55\textwidth}
\includegraphics[width=6cm]{kile.eps}
\end{column}
\begin{column}{0.45\textwidth}
Exemples :

\smallskip
\emph{\tiny ``L'astrolabe, histoire théorie et pratique'' et\\ "Loxodromie et projection de Mercator``}.

\smallskip
\includegraphics[width=2cm]{Loxodromie.eps}\qquad \includegraphics[width=2cm]{Astrolabe.eps}
\end{column}

\end{columns}
Autre exemple connu : votre``formulaire et tables''...
\end{frame}

\begin{frame}{Xhtml et Css}
\begin{center}Orientation web -- séparation du contenu et de la forme.\end{center}

\small Langages balisés sans boucles, fortement normalisés et strict.

\smallskip
\begin{columns}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=5cm]{Xhtml.eps}
\end{column}
\begin{column}{0.5\textwidth}
\centering \includegraphics[width=5cm]{css.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Publication multi-support}
Aujourd'hui les supports d'édition sont multiples.

\smallskip
\includegraphics[width=10cm]{DiagTexte.eps}
\end{frame}

\begin{frame}{Publication multi-support}
Et les langages nécessaires aussi (\small{\LaTeX et MySQL ne sont pas XML}).

\smallskip
\includegraphics[width=10cm]{DiagTexteLang.eps}
\end{frame}

\begin{frame}{XML (eXtensible Markup Language)}

{\centering Idée : structurer du contenu à l'aide de balises : {\color{red}<} et {\color{red}>}.

\smallskip
{\scriptsize Exemple : {\color{red}<title>}Le XML (eXtensible Markup Language){\color{red}</title>}.}

\smallskip
Le XML n'impose aucun contenu aux balises {\color{red}< >}.

\medskip
Chaque langage va définir lui-même ses propres balises.

{\scriptsize Ainsi, en Xhtml, on trouve la balise ''title`` qui peut ne pas apparaître dans un autre langage XML.}
}

\end{frame}

\begin{frame}[containsverbatim]{DocBook}

Un autre exemple de XML est donné par DocBook dont voici un exemple :

\medskip
\scriptsize
{\color{blue}\verb#<?xml version="1.0" encoding="UTF-8"?>#}
{\color{green}\verb=<!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN">=}
{\color{yellow}\verb#<article lang="">#}
{\color{red}\verb=<para>=}\verb=PROPOSITION XXV – PROBLEME VI={\color{red}\verb=</para>=}
{\color{red}\verb=<para>=}\verb=Trouver les forces du Soleil.={\color{red}\verb=</para>=}
{\color{red}\verb=<para>=}
\verb#<inlinegraphic fileref="embedded:Image1" width="12.78cm" depth="4.922cm"/>#
\verb=Que S représente le Soleil, T la Terre, P la Lune={\color{red}\verb=</para>=}
{\color{red}\verb=<para>=}\verb=FIG 3.={\color{red}\verb=</para>=}
{\color{yellow}\verb=</article>=}

\end{frame}

\begin{frame}[containsverbatim]{WAP}
Un autre exemple de XML est donné par le WAP (Wireless Application Protocol).

Le language utilisé est le WML (Wireless Markup Language).

\medskip
\scriptsize
{\color{blue}\verb#<?xml version="1.0"?>#}
{\color{green}\verb=<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"=}
{\color{green}\verb="http://www.wapforum.org/DTD/wml_1.1.xml">=}
{\color{yellow}\verb=<wml>=}
{\color{red}\verb#<card id="cours" title="||cours de physique||">#}
\verb#<p align="left">#
\verb=Ma première <br/>page WML=
\verb=</p>=
{\color{red}\verb=</card>=}
{\color{yellow}\verb=</wml>=}

\end{frame}

\begin{frame}{Évaluations\hypertarget{evaluationsretour}{}}
\begin{center}
\Large
Désagréables \(\longleftrightarrow\) agréables\endnote{Wikipedia : \url{http://commons.wikimedia.org/wiki/File:Notes.svg}} ?

\includegraphics[width=5cm]{Notes.eps}

\hyperlink{evaluations}{\beamerbutton{Description des évaluations}}
\end{center}
\end{frame}


\subsection{Le nombre}

\begin{frame}{Représentation d'un nombre}
Comment un ordinateur comprend-il les nombres ?

\medskip
\onslide<2->Représentation décimale :
\[\onslide<2->127=\onslide<3->100 +20 +7=\onslide<4->1\cdot 100 +2\cdot 10 +7\cdot 1=\onslide<5->1\cdot 10^2 +2\cdot 10^1 +7\cdot 10^0\]
\onslide<6->Représentation binaire :
\[\onslide<7->1101=\onslide<8->1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0=\onslide<9>8+4+0+1=13\]
\end{frame}

\begin{frame}{A l'envers ? Première méthode.}
Il s'agit de passer du nombre décimal 13 à son correspondant binaire 1101. Deux méthodes sont possibles.

\medskip
La première est intuitive :
\begin{enumerate}
\item On trouve la plus grande puissance de 2 inférieure ou égale au nombre décimal, ici \(2^3\) car \(2^3=8<13\),
\item On calcule le reste, ici \(13-8=5\) et on reprend le premier point pour celui-ci et les suivants.
\end{enumerate}
On obtient alors \(2^2=4\) et il reste \(1=2^0\). Le nombre binaire cherché se factorise donc ainsi :
\[13=1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0\]
Le résultat est donc donné par les facteurs de chaque puissance de deux : 1101.
\end{frame}

\begin{frame}{A l'envers ? Seconde méthode.}
Il s'agit de passer du nombre décimal 13 à son correspondant binaire 1101.

\medskip
La seconde méthode est plus ''mécanique`` :

elle consiste à diviser le nombre par deux successivement.

Les restes constituent le nombre binaire \textit{à l'envers}.

Par exemple, 13/2=6 reste 1. Puis, 6/2=3 reste 0. Puis, 3/2=1 reste 1 et enfin, 1/2=0 reste 1.

Les restes sont successivement 1011. En inversant, on obtient le nombre binaire 1101 qui correspond au nombre décimal 13.
\end{frame}

\begin{frame}{Exercices}
Convertissez les nombres suivants :

\begin{itemize}
\item \onslide<1->8 en binaire \onslide<2->\(\;=1000\) car \(1\cdot 2^3+0\cdot 2^2+0\cdot 2^1+0\cdot 2^0=8\)
\item \onslide<1->21 en binaire \onslide<3->\(\;=10101\) car \(1\cdot 2^4+0\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0=21\)
\item \onslide<1->1001101 en décimal \onslide<4->\(\;=77\) car \(1\cdot 2^6+0\cdot 2^5+0\cdot 2^4+1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0=77\)
\item \onslide<1->1101,101 en décimal \onslide<5->\(\;=13,625\) car \(1\cdot 2^3+1\cdot 2^2+0\cdot 2^1+1\cdot 2^0+1\cdot 2^{-1}+0\cdot 2^{-2}+1\cdot 2^{-3}=13,625\)
\item \onslide<1->14,25 en binaire \onslide<6->\(\;=1110,01\) car \(1\cdot 2^3+1\cdot 2^2+1\cdot 2^1+0\cdot 2^0+0\cdot 2^{-1}+1\cdot 2^{-2}=14,25\)
\end{itemize}
\end{frame}

\begin{frame}{Nombres à virgule flottante}
L'écriture d'un nombre est facilitée si elle se fait sous la forme :

\begin{center}
\fbox{$\displaystyle nombre=(-1)^{signe}\cdot mantisse\cdot base^{exposant}$}
\end{center}
avec $1\leq mantisse<10$

Par exemple le nombre décimal $-234$ peut s'écrire :
$-2,34\cdot 10^2$
où le signe vaut 1, la mantisse 2,34, la base 10 et l'exposant 2.

\medskip
Un nombre binaire peut être représenté de la même manière en base deux à l'aide du signe 0 ou 1, d'une mantisse et d'un exposant.
\end{frame}

\begin{frame}{Représentation d'un nombre sur 32 bits}
La représentation d'un nombre binaire à virgule flottante :

\begin{center}
\fbox{$\displaystyle nombre=(-1)^{signe}\cdot mantisse\cdot base^{exposant}$}
\end{center}
avec $1\leq mantisse<2$

est déterminée par le nombre de bits qui lui sont associés. Couramment on utilise 32 bits répartis ainsi :
\begin{description}
\item[Le signe] 1 bit, 0 (positif) ou 1 (négatif).
\item[La mantisse] 23 bits, sans compter le 1 précédant toujours la virgule.
\item[L'exposant] 8 bits, soit 256 nombres. Biaisé de 127 pour permettre des exposants négatifs, soit de $-127$ à $+127$.
\end{description}
\end{frame}

\begin{frame}{Exemple numérique}
\begin{align*}
 Nombre&=10101000000000000000000000000110\\
 &=1\;\big|\;01010000000000000000000\;\big|\;00000110\\
 &=signe\;\big|\;mantisse\;\big|\;exposant
\end{align*}
Ce nombre peut être traduit en décimal de la manière suivante :
\begin{itemize}
\item Le signe \(= 1\;\Rightarrow\;\) nombre négatif.
\item La mantisse \(= 1+0\cdot 2^{-1}+1\cdot 2^{-2}+0\cdot 2^{-3}+1\cdot 2^{-4}=1,3125\)
\item L'exposant vaut : \(0\cdot 2^0+1\cdot 2^1+1\cdot 2^2=6\), c'est-à-dire en réalité \(6-127=-121\) à cause du biais.
\end{itemize}
Soit le nombre : \(-1,3125\cdot 2^{-121}=-4,937\cdot 10^{-37}\)
\end{frame}

\begin{frame}{Exercices}
Convertissez les nombres suivants :

\begin{itemize}
\item	\only<1,5->{\(00110000000000000000000010000000\)}\only<1>{ en décimal }\only<5->{=}\only<2-4>{\(0\;\big|\;01100000000000000000000\;\big|\;10000000\)}
	\only<3-4>{\(+\;\big|\;1+2^{-2}+2^{-3}=1,375\;\big|\;2^7-127=1\;\Rightarrow\;\)}\only<4->{\\\(+1,375\cdot 2^1=2,75\)}
\item	\only<1-5,9->{\(00111000000000000000000011000000\)}\only<1-5>{ en décimal }\only<9->{=}\only<6-8>{\(0\;\big|\;01110000000000000000000\;\big|\;11000000\)}
	\only<7-8>{\(+\;\big|\;1+2^{-2}+2^{-3}+2^{-4}=1,4375\;\big|\;2^7+2^6-127=65\;\Rightarrow\;\)}\only<8->{\(+1,4375\cdot 2^{65}=5,3\cdot 10^{19}\)}
\item	\only<1-9,13->{\(00101000000000000000000010100000\)}\only<1-9>{ en décimal }\only<13->{=}\only<10-12>{\(0\;\big|\;01010000000000000000000\;\big|\;10100000\)}
	\only<11-12>{\(+\;\big|\;1+2^{-2}+2^{-4}=1,3125\;\big|\;2^7+2^5-127=33\;\Rightarrow\;\)}\only<12->{\(+1,3125\cdot 2^{33}=1,1\cdot 10^{10}\)}
\item	\only<1-13,17->{\(10110000000000000000000001010000\)}\only<1-13>{ en décimal }\only<17->{=}\only<14-16>{\(1\;\big|\;01100000000000000000000\;\big|\;01010000\)}
	\only<15-16>{\(-\;\big|\;1+2^{-2}+2^{-3}=1,375\;\big|\;2^6+2^4-127=-47\;\Rightarrow\;\)}\only<16->{\(-1,375\cdot 2^{-47}=-9,8\cdot 10^{-15}\)}
\end{itemize}
\end{frame}

\subsection{L'image}

\begin{frame}{Byte, bit et octet}
\transdissolve<3>
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}<1->{Décimal}
\begin{description}[23, 45, 234, \dots]
\item[0, 1, 2, \dots, 9] : chiffres.
\item[23, 45, 234, \dots] : nombres.
\end{description}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}<2->{Binaire}
\begin{description}[101, 11, 10, \dots]
\item[0 et 1] : \textbf{bits}.
\item[101, 11, 10, \dots] : nombres.
\end{description}
\end{block}
\end{column}
\end{columns}

\medskip
\uncover<3>{(Attention, 101 binaire ne se lit pas ''cent un`` et ne correspond pas à la valeur décimale 101. En réalité, on a :
\[0_b=0_d\,;\,1_b=1_d\,;\,10_b=2_d\,;\,11_b=3_d\,;\,100_b=4_d\,;\,101_b=5_d\, \dots)\]}
\end{frame}

\begin{frame}{Byte, bit et octet}
\begin{itemize}
\item<1-> Avec un \emph{bit}, on a les nombres 0 et 1, soit deux nombres.
\item<2-> Avec deux \emph{bits}, on a les nombres 00, 01, 10 et 11, soit quatre nombres.
\item<3-> Avec trois \emph{bits}, on a les nombres 000, 001, 010, 011, 100, 101, 110 et 111, soit huit nombres.
\item<4-> Avec quatre \emph{bits}, on a \dots ?
\item<5-> Avec n \emph{bits}, on a un \textbf{arrangement avec répétition de k éléments choisis parmi deux} (0 ou 1). Les mathématiques donnent alors le nombre de ces arrangements :
\[\bar A_k^2=2^k\]
\end{itemize}
\end{frame}

\begin{frame}{Byte, bit et octet}
Avec huit bits, on a donc :
\[\bar A_8^2=2^8=256\,\text{possibilités}\]
On peut donc représenter 256 nombres.

\medskip
\begin{center}
\fbox{\parbox{6cm}{Un \textbf{octet} est un nombre de huit bits.

Un \emph{octet} est aussi nommé \textbf{byte}.}}
\end{center}
\end{frame}

\begin{frame}{kilobyte, Megabyte, Gigabyte, \dots}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}<1->{Décimal}
kilo \(\equiv\) nombre de possibilités de réaliser un nombre à l'aide de 3 chiffres :
\[\bar A_3^{10}=10^3=1000\,\text{possibilités}\]
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}<2->{Binaire}
kilo \(\equiv\) nombre de possibilités de réaliser un nombre à l'aide de 10 bits :
\[\bar A_{10}^2=2^{10}=1024\,\text{possibilités}\]
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{kilobyte, Megabyte, Gigabyte, \dots}
\begin{enumerate}
\item Un kilobyte ou kilooctet, noté ko, correspond à 1024 octets.
\item Un Megabyte ou Megaoctet, noté Mo, correspond à 1024 kilooctet, soit 1'048'576 bytes ou octets.
\item Un Gigabyte ou Gigaoctet, noté Go, correspond à 1024 Megaoctet, soit 1'048'576 kilobyte ou 1'073'741'824 bytes.
\end{enumerate}
L'ordre de grandeur correspond à la notation décimale :
\begin{enumerate}
\item kilo pour milliers.
\item Mega pour millons.
\item Giga pour milliards.
\end{enumerate}
\end{frame}

\begin{frame}{Exercices}
\small
\only<1-2>{Sur un processeur 16 bits, combien de nombres entiers non signés peut on représenter ?\\
(un processeur 16 bits peut manipuler des ``mots'' de 16 bits, exemple 1110110000110110)}
      \only<2>{\\\smallskip On a \(2^{16}=65'536\) possibilités, soit autant de nombres.}
\only<3-4>{Sur le même processeur, quels sont les plus petits et plus grands nombres entiers signés qui puissent être représentés ?\\
(c'est à dire avec la possibilité de faire des nombres positifs et négatifs)}
      \only<4>{\\\smallskip On a un bit de signe (0 ou 1) et 15 bits pour le nombre, soit \(2^{15}=32'768\) possibilités. On peut donc représenter des nombres de -32'768 à 32'767 (à cause du zéro).}
\only<5-6>{Sur un processeur 32 bits, si on met dans un fichier un fois tous les nombres entiers non signés, quel sera en Go la taille du fichier ?}
      \only<6>{\\\smallskip Avec un tel processeur on a \(2^{32}=4'294'967'296\) nombres possibles (avec le zéro). Chaque nombre est codé sur 32 bits, soit au total \(4'294'967'296\cdot 32=1,37\cdot 10^{11}\) bits. Cela représente \(1,71\cdot 10^{10}\) octets ou \(16'777'216\) ko, ou encore \(16'384\) Mo, c'est-à-dire 16 Go.}
\only<7-8>{Quelle plage de nombres réels couvre la représentation d'un réel (1 bit pour le signe, 23 bits pour la mantisse et 8 bits pour l'exposant).}
      \only<8>{\\\smallskip Le nombre maximum codé par la mantisse est \[1+\sum_{i=-1}^{-23} 2^i=1,99999988079071\cong2\] Comme l'exposant est codé sur 8 bits, on a \(2^8=256\) possibilités. Pour coder les négatifs on biaise de 127. Cela signifie que le nombre maximum codé par l'exposant est \[2^{127}=1,7\cdot 10^{38}\] Au total, on a donc le nombre maximal \[1,9999\cdot 1,7\cdot 10^{38}=3,4\cdot 10^{38}\]}
\end{frame}

\begin{frame}{Image matricielle ou bitmap}
\begin{columns}
\begin{column}{0.5\textwidth}
Capteur ccd\endnote{Voir wikipedia : \url{http://commons.wikimedia.org/wiki/File:CCD\_in\_camera.jpg}} : niveaux de gris.

\smallskip
\includegraphics[height=4.5cm]{CCD.eps}
\end{column}
\begin{column}{0.5\textwidth}
Grille de pixels\endnote{Voir wikipedia : \url{http://commons.wikimedia.org/wiki/File:Pixel.jpg}}

\smallskip
\includegraphics[height=4.5cm]{Pixel.eps}
\end{column}
\end{columns}
\end{frame}

%\begin{frame}{Effet photoélectrique}
%\begin{columns}
%\begin{column}{0.6\textwidth}
%Éclairage \(\rightarrow\) production de charges

%\medskip
%\includegraphics[width=5cm]{PhotoElectrique.eps}

%La flèche verte montre le transfert de charges\endnote{Wikicommon : \url{http://fr.wikibooks.org/wiki/Fichier:CCD\_3Phases\_3D-Layout.png}}.

%\smallskip
%Voir aussi ci-contre\endnote{Wikicommon : \url{http://commons.wikimedia.org/wiki/File:CCD\_Zeile\_Belichtung\_Transport.gif}}.
%\end{column}
%\begin{column}{0.4\textwidth}
%\includegraphics[width=3cm]{CCD_Transport1.eps}\\
%\includegraphics[width=3cm]{CCD_Transport2.eps}\\
%\includegraphics[width=3cm]{CCD_Transport3.eps}
%\end{column}
%\end{columns}
%\end{frame}

\begin{frame}{Numérisation sur deux bits}
\begin{columns}
\begin{column}{0.5\textwidth}
Sur deux bits, on a quatre niveaux de gris possibles :
\begin{description}
\item[00] blanc,
\item[01] gris clair,
\item[10] gris foncé et
\item[11] noir.
\end{description}
Sur huit bits, on aurait 256 niveaux de gris, mais la forme de l'image resterait identique car elle dépend de la résolution.
\end{column}
\begin{column}{0.5\textwidth}

\smallskip
\includegraphics[width=5cm]{Numerisation.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Résolution}
\includegraphics[width=10cm]{Resolution.eps}

\smallskip
Unités de la résolution\endnote{Voir wikipedia : \url{http://fr.wikipedia.org/wiki/Fichier:Resolution\_test.jpg}} : dpi (dot per inch) ou ppp (point par pouce).

Exemples typiques : écran 75-100 dpi, photocopieuse 360 dpi, imprimante 700 dpi, scanner 2000 dpi.
\end{frame}

\begin{frame}{Image en couleur : codage RVB.}
\begin{columns}
\begin{column}{0.5\textwidth}
\small
\begin{description}[Norme :]
\item[Idée :] masquer les photosites par une couche mince d'oxyde de silicium filtrant les trois couleurs de base : rouge (R), vert (V) et bleu (B).
\item[Norme :] par la Commission Internationnale de l'éclairage aux longueurs d'ondes de 546,1 nanomètre pour le rouge, 700,0 nanomètre pour le vert et 435,8 nanomètre pour le bleu.
\end{description}
\end{column}
\begin{column}{0.5\textwidth}
Filtre de Bayer\endnote{Voir wikipedia : \url{http://commons.wikimedia.org/wiki/File:BayerPatternFiltration.png}}.

\smallskip
\includegraphics[width=5cm]{BayerRVB.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Filtre de Bayer}
\begin{columns}
\begin{column}{0.4\textwidth}
Filtre de Bayer.

\smallskip
\includegraphics[width=5cm]{FiltreBayer.eps}
\end{column}
\begin{column}{0.6\textwidth}
\small
\begin{itemize}
\item Pavage privilégiant le vert (\oe il plus sensible),
\item Couleur pixel central :

Bleu = 200

Rouge = (237+63+255+150)/4=176

Vert = (133+80+255+160)/4=157
\item Codage en 24 bits : 8 bits / couleur.

Soit 256 niveaux de luminosité pour chaque couleur, c'est-à-dire \(256\cdot 256\cdot 256=16'777'216\) couleurs différentes. La palette comporte plus de 16 millions de couleurs.
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Palette de couleur}
Autres manière de coder les images : la palette de couleur.

\smallskip
\begin{columns}
\begin{column}{0.65\textwidth}
\includegraphics[width=8cm]{PaletteTux.eps}
\end{column}
\begin{column}{0.35\textwidth}
\begin{itemize}
\item Choix : \textbf{256} couleurs
\item Indexation de chaque pixel par l'une de celle-ci.
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Taille et poids d'une image}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}<1->{Couleurs vraies : 24 bits / pixel}
Image 252 x 256 pixels =

64'512 pixels

\medskip
Couleurs vraies : 3 octets / pixel

3\(\cdot\) 64'512 = 193'536 octets

\medskip
193'536 octets = 189 ko

\smallskip
Total : \textbf{189 ko}

En réalité : 65,2 ko (compression)
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}<2->{Couleurs indexées}
Image 252 x 256 pixels =

64'512 pixels

\medskip
Index sur 8 bits : 1 octet/pixel

64'512 octets = 63 ko

\medskip
Palette 256 x 24 bits = 6'144 bits

6'144 bits = 768 octets = 0,75 ko

\medskip
Total : \textbf{63,75 ko}

En réalité : 18 ko (compression)
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Formats d'image : fichier .bmp (bitmap)}
\begin{minipage}{12cm}
\begin{minipage}{1.5cm}
\scriptsize Éditeur\\texte

\begin{Verbatim}[frame=single,label=\fbox{Fichier texte},framesep=7mm,labelposition=bottomline]
BMF.....
..6...(.
........
........
........
........
......ÿ.
.ÿÿÿ....
ÿ.ÿ...  
\end{Verbatim}
\end{minipage}
\begin{minipage}{10.5cm}
\scriptsize Éditeur binaire

\tiny
\begin{Verbatim}[fontsize=\relsize{-1},frame=single,label=\fbox{Fichier binaire},framesep=7mm,labelposition=bottomline]
01000010 01001101 01000110 00000000 00000000 00000000 00000000 00000000
00000000 00000000 00110110 00000000 00000000 00000000 00101000 00000000
00000000 00000000 00000010 00000000 00000000 00000000 00000010 00000000
00000000 00000000 00000001 00000000 00011000 00000000 00000000 00000000
00000000 00000000 00010000 00000000 00000000 00000000 00010011 00001011
00000000 00000000 00010011 00001011 00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000 00000000 00000000 11111111 00000000
00000000 11111111 11111111 11111111 00000000 00000000 00000000 00000000
11111111 00000000 11111111 00000000 00000000 00000000                  
\end{Verbatim}
\end{minipage}
\end{minipage}
\end{frame}

\begin{frame}[containsverbatim]{Codage hexadécimal (fichier .bmp)}
\begin{minipage}{6cm}
\scriptsize Hexadécimal

\tiny
\begin{Verbatim}[fontsize=\relsize{-0.9},frame=single,label=\fbox{Fichiers hexadécimal et texte},framesep=7mm,labelposition=topline]
42 4d 46 00 00 00 00 00 00 00 36 00 00 00 28 00 BMF.......6...(.
00 00 02 00 00 00 02 00 00 00 01 00 18 00 00 00 ................
00 00 10 00 00 00 13 0b 00 00 13 0b 00 00 00 00 ................
00 00 00 00 00 00 ff 00 00 ff ff ff 00 00 00 00 ......ÿ..ÿÿÿ....
ff 00 ff 00 00 00                               ÿ.ÿ...          
\end{Verbatim}
\end{minipage}
\hfill
\begin{minipage}{4cm}
L'image correspondante :

\centering
\includegraphics[width=2cm]{QuatrePixelsGrand.eps}
\end{minipage}
\end{frame}

\begin{frame}[containsverbatim]{Structure du ficher .bmp}
\begin{table}
\tiny
\begin{center}
\caption{Format d'un bitmap}
% use packages: array
\renewcommand{\multirowsetup}{\centering}
\begin{tabular}[t]{|l|l|l|}\hline
\multirow{4}{2ex}{\rotatebox{90}{fichier}}& 42 4D & Caractère B et M pour désigner un bitmap \\ 
& 46 00 00 00 & Taille du fichier 46 = 70 octets \\ 
& 00 00 00 00 & Réservé toujours à 0 \\ 
& 36 00 00 00 & Position (offset) de l'image 36 = 54 octets \\ \hline
\multirow{11}{2ex}{\rotatebox{90}{Entêtes image}}& 28 00 00 00 & Taille de l'entête du fichier 28 = 40 octets \\ 
& 02 00 00 00 & Largeur de l'image : 2 pixels \\ 
& 02 00 00 00 & Hauteur de l'image : 2 pixels \\ 
& 01 00 & nombre de plans utilisés \\ 
& 18 00 & nombre de bits par pixel 18 = 24 bits/pixel (3 octets) \\ 
& 00 00 00 00 & Méthode de compression (0 pas de compression) \\ 
& 10 00 00 00 & Taille de l'image 10 = 16 octets \\ 
& 13 0b 00 00 & Résolution horizontale 0b13 = 2835 pixel par mètre \\ 
& 13 0b 00 00 & Résolution verticale 0b13 = 2835 pixel par mètre \\ 
& 00 00 00 00 & Nombre de couleurs de la palette : 0 palette complète \\ 
& 00 00 00 00 & Nombre de couleurs importantes de la palette \\ \hline
\multirow{6}{2ex}{\rotatebox{90}{Image}}& ff 00 00 & B=255,V=0,R=0 : bleu \\
& ff ff ff & B=255, V=255, R=255 : blanc \\
& 00 00 & Pour que la ligne ait un nb d'octets multiple de 4 \\
& 00 00 ff & B=0, V=0, R=255 : rouge \\
& 00 ff 00 & B=0, V=255, R=0 : vert \\
& 00 00 & Pour que la ligne ait un nb d'octets multiple de 4 \\ \hline
\end{tabular}
\end{center}
\end{table} 
\end{frame}

\begin{frame}{Hexadécimal}
Un nombre hexadécimal est constitué de 16 chiffres différents. La correspondance avec le décimal est la suivante :
\begin{center}
\begin{tabular}{cccccccccccccccc}
0 & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 & 13 & 14 & 15\\
\textdownarrow&\textdownarrow&\textdownarrow&\textdownarrow&
\textdownarrow&\textdownarrow&\textdownarrow&\textdownarrow&
\textdownarrow&\textdownarrow&\textdownarrow&\textdownarrow&
\textdownarrow&\textdownarrow&\textdownarrow&\textdownarrow\\
{\color{red} 0} & {\color{red} 1} & {\color{red} 2} & {\color{red} 3} & {\color{red} 4} & {\color{red} 5} & {\color{red} 6} &
{\color{red} 7} & {\color{red} 8} & {\color{red} 9} & {\color{red} A} & {\color{red} B} & {\color{red} C} & {\color{red} D} & {\color{red} E} & {\color{red} F}
\end{tabular}
\end{center}

A l'instar de la base 10, le correspondant décimal d'un nombre hexadécimal se caclule de la manière suivante :
\begin{align*}
\text{Décimal : } 930&=9\cdot 10^2+3\cdot 10^1+0\cdot 10^0\\
\text{Hexadécimal : } 3A2&=3\cdot 16^2+A\cdot 16^1+2\cdot 16^0\\
&=768+10\cdot 16+2=930
\end{align*}
\end{frame}

\begin{frame}{Exercices {\tiny 1\textrightarrow 1 \dots{} 9\textrightarrow 9 / 10\textrightarrow A / 11\textrightarrow B / 12\textrightarrow C / 13\textrightarrow D / 14\textrightarrow E / 15\textrightarrow F}}
\begin{itemize}
 \only<1-4>{\item	Convertissez les nombres hexadécimaux suivants en décimal : 5F, 12, 5, A1, DD, F, 4E, 3B et 43.\\}
	\only<2>{\(5F_{hex}=_{dec}5\cdot 16+F=80+15=95\)}
	\only<3>{\(12_{hex}=_{dec}1\cdot 16+2=18\)}
	\only<4>{\(5_{hex}=_{dec}5\), \(A1_{hex}=_{dec}10\cdot 16+1=161\), \(DD_{hex}=_{dec}221\),\\ \(F_{hex}=_{dec}15\), \(4E_{hex}=_{dec}78\), \(3B_{hex}=_{dec}59\) et \(43_{hex}=_{dec}67\)}
 \only<1,5-10>{\item	Convertissez les nombres décimaux suivants en hexadécimal : 4, 9, 12, 15, 22, 24, 33, 102, 250, 4343 et 3853.\\}
	\only<6>{\(4_{dec}=_{hex}4\), \(9_{dec}=_{hex}9\), \(12_{dec}=_{hex}C\), \(15_{dec}=_{hex}F\)}
	\only<7>{\(22_{dec}=_{hex}1\cdot 16+6=16\), \(24_{dec}=_{hex}1\cdot 16+8=18\), \(33_{dec}=_{hex}2\cdot 16+1=21\)}
	\only<8>{\(102_{dec}=_{hex}6\cdot 16+6=66\), \(250_{dec}=_{hex}15\cdot 16+10=FA\)}
	\only<9>{\(4343_{dec}=_{hex}1\cdot 16^3+0\cdot 16^2+15\cdot 16^1+7\cdot 16^0=10F7\)}
	\only<10>{\(3853_{dec}=_{hex}15\cdot 16^2+0\cdot 16^1+13\cdot 16^0=F0D\)}
 \only<1,11-12>{\item	En vraie couleur, donnez le code hexadécimal du rouge, du bleu et du vert.\\}
	\only<12>{FF0000, pour le rouge car on a 8 bits / couleur, soit 256 niveaux de couleur : deux chiffres hexadécimaux = \(16\cdot 16=256\)\\
	0000FF, pour le bleu et 00FF00 pour le vert, car le codage est RVB.}
 \only<1,13-14>{\item	En vraie couleur, donnez le code hexadécimal de la couleur comprenant 30\% de rouge, 20\% de vert et 10\% de bleu.\\}
	\only<14>{30\% R : \(0,3\cdot 256=77_{dec}=_{hex}4D\), 20\% V : \(51_{dec}=_{hex}33\), 10\% B : \(26_{dec}=_{hex}1A\), soit 4D331A}
 \only<1,15-16>{\item	En vraie couleur, donnez le code hexadécimal de la couleur comprenant 50\% de rouge, 80\% de vert et 3\% de bleu.\\}
	\only<16>{50\% R : \(0,5\cdot 256=128_{dec}=_{hex}80\), 80\% V : \(205_{dec}=_{hex}CD\), 3\% B : \(8_{dec}=_{hex}08\), soit 80CD08}
\end{itemize}
\end{frame}

\begin{frame}{Gimp}
\begin{center}Les deux couleurs définies dans l'exercice précédent sont :\end{center}

\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{4d331a.eps}
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{80cd08.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Exercice : ceci est une image \dots}
\begin{columns}
\begin{column}{0.6\textwidth}
\scriptsize
\begin{Verbatim}[fontsize=\relsize{-0.9}]
42 4d de 00 00 00 00 00 00 00 36 00 00 00 28 00
00 00 07 00 00 00 07 00 00 00 01 00 18 00 00 00
00 00 a8 00 00 00 13 0b 00 00 13 0b 00 00 00 00
00 00 00 00 00 00 ff ff ff ff ff ff ff ff ff 00
00 ff ff ff ff ff ff ff ff ff ff 00 00 00 ff ff
ff ff ff ff 00 00 ff 00 00 ff 00 00 ff ff ff ff
ff ff ff 00 00 00 ff ff ff 00 00 ff ff 00 00 ff
00 00 ff 00 00 00 00 ff ff ff ff 00 00 00 00 00
ff ff ff ff ff 00 00 ff 00 00 ff ff ff ff ff ff
00 00 ff 00 00 00 00 00 ff ff ff ff ff 00 00 00
00 ff ff 00 00 ff ff ff 00 00 ff 00 00 00 ff ff
ff 00 00 ff 00 00 ff ff ff ff 00 00 ff ff 00 00
ff ff ff 00 00 00 ff ff ff ff ff ff ff ff ff ff
ff ff ff ff ff ff ff ff ff 00 00 00 00 00      
\end{Verbatim}
\end{column}
\begin{column}{0.4\textwidth}
\begin{itemize}
\item Type d'image ?
\item Nb d'octets ?
\item Offset ?
\item Largeur ?
\item Hauteur ?
\item Nb octets/pixel ?
\item Taille image ?
\item Que représente-elle ?
\item Taille (en ko) ?
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Exercice : ceci est une image \dots}
\begin{columns}
\begin{column}{0.5\textwidth}
\tiny\ttfamily
\only<1>{{\color{red}42 4d }}\only<2->{42 4d }\only<2>{{\color{red}de}}\only<1,3->{de} 00 00 00 00 00 00 00 \only<3>{{\color{red}36}}\only<1-2,4->{36} 00 00 00 28 00\\
00 00 \only<4>{{\color{red}07}}\only<1-3,5->{07} 00 00 00 \only<5>{{\color{red}07}}\only<1-4,6->{07} 00 00 00 01 00 \only<6>{{\color{red}18}}\only<1-5,7->{18} 00 00 00\\
00 00 \only<7>{{\color{red}a8}}\only<1-6,8->{a8} 00 00 00 13 0b 00 00 13 0b 00 00 00 00\\
00 00 00 00 00 00\only<8>{ {\color{red} ff ff ff ff ff ff ff ff ff 00\\
00 ff ff ff ff ff ff ff ff ff ff 00 00 00 ff ff\\
ff ff ff ff 00 00 ff 00 00 ff 00 00 ff ff ff ff\\
ff ff ff 00 00 00 ff ff ff 00 00 ff ff 00 00 ff\\
00 00 ff 00 00 00 00 ff ff ff ff 00 00 00 00 00\\
ff ff ff ff ff 00 00 ff 00 00 ff ff ff ff ff ff\\
00 00 ff 00 00 00 00 00 ff ff ff ff ff 00 00 00\\
00 ff ff 00 00 ff ff ff 00 00 ff 00 00 00 ff ff\\
ff 00 00 ff 00 00 ff ff ff ff 00 00 ff ff 00 00\\
ff ff ff 00 00 00 ff ff ff ff ff ff ff ff ff ff\\
ff ff ff ff ff ff ff ff ff 00 00 00 00 00      }}
\only<1-7,9->{ff ff ff ff ff ff ff ff ff 00\\
00 ff ff ff ff ff ff ff ff ff ff 00 00 00 ff ff\\
ff ff ff ff 00 00 ff 00 00 ff 00 00 ff ff ff ff\\
ff ff ff 00 00 00 ff ff ff 00 00 ff ff 00 00 ff\\
00 00 ff 00 00 00 00 ff ff ff ff 00 00 00 00 00\\
ff ff ff ff ff 00 00 ff 00 00 ff ff ff ff ff ff\\
00 00 ff 00 00 00 00 00 ff ff ff ff ff 00 00 00\\
00 ff ff 00 00 ff ff ff 00 00 ff 00 00 00 ff ff\\
ff 00 00 ff 00 00 ff ff ff ff 00 00 ff ff 00 00\\
ff ff ff 00 00 00 ff ff ff ff ff ff ff ff ff ff\\
ff ff ff ff ff ff ff ff ff 00 00 00 00 00      }
\end{column}
\begin{column}{0.5\textwidth}
\scriptsize
\begin{itemize}
\item \only<1>{{\color{red}BM car \(42_H=66_D=B_{ASCII}\) et\\ \(4d_H=77_D=M_{ASCII}\)}}\only<2->{BM car \(42_H=66_D=B_{ASCII}\) et\\ \(4d_H=77_D=M_{ASCII}\)}
\item \only<1>{Nb d'octets ?}\only<2>{{\color{red}\(de_H=222_D\) octets}}\only<3->{\(de_H=222_D\) octets}
\item \only<1-2>{Offset ?}\only<3>{{\color{red}\(36_H=54_D\) octets}}\only<4->{\(36_H=54_D\) octets}
\item \only<1-3>{Largeur ?}\only<4>{{\color{red}\(07_H=7\) pixels}}\only<5->{\(07_H=7\) pixels}
\item \only<1-4>{Hauteur ?}\only<5>{{\color{red}\(07_H=7\) pixels}}\only<6->{\(07_H=7\) pixels}
\item \only<1-5>{Nb octets/pixel ?}\only<6>{{\color{red}\(18_H=24_D\) bits/pixel,soit 3 octets/pixel}}\only<7->{\(18_H=24_D\) bits/pixel,soit 3 octets/pixel}
\item \only<1-6>{Taille image ?}\only<7>{{\color{red}\(a8_H=168_D\) octets}}\only<8->{\(a8_H=168_D\) octets}
\item \only<1-7>{Que représente-elle ?}\only<8>{{\color{red}Un c\oe ur percé.}}\only<9->{Un c\oe ur percé.}
\item \only<1-8>{Taille (ko) ?}\only<9>{{\color{red}222 octets, soit 0,217 ko}}\only<10>{222 octets, soit 0,217 ko}
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Une autre interprétation de cette image}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{Coeur.eps}
\end{column}
\begin{column}{0.5\textwidth}
C'est plus naturel.
\end{column}
\end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Une autre image \dots{} corrompue.}
\begin{columns}
\begin{column}{0.6\textwidth}
\scriptsize
\begin{Verbatim}[fontsize=\relsize{-0.9}]
42 4d e1 00 00 00 00 00 00 00 36 00 00 00 28 00
00 00 07 00 00 00 07 00 00 00 01 00 17 00 00 00
00 00 aa 00 00 00 13 0b 00 00 13 0b 00 00 00 00
00 00 00 00 00 00 00 ff 00 00 87 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 10 00 ff
00 00 87 00 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 83 00 00 87 00 ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 ff 00 00 ff 00 00 ff 00 ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 86 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 87 00 00 87 00 00 87 00 00 87 00 00 87 00
ff ff ff 00 00 00 00 ff 00 00 ff 00 00 ff 00 00
ff 00 00 ff 00 00 ff 00 00 ff 00 00 00 00
\end{Verbatim}
\end{column}
\begin{column}{0.4\textwidth}
Ce fichier bichrome en couleurs vraies a été corrompu.

\smallskip
Que représente-t-il ? Pouvez-vous le corriger ?

\smallskip
Quel est le poids de cette image en Mo ?
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Le fichier une fois corrigé.}
\begin{columns}
\begin{column}{0.5\textwidth}
\tiny\ttfamily
42 4d {\color{red}de} 00 00 00 00 00 00 00 36 00 00 00 28 00\\
00 00 07 00 00 00 07 00 00 00 01 00 {\color{red}18} 00 00 00\\
00 00 {\color{red}a8} 00 00 00 13 0b 00 00 13 0b 00 00 00 00\\
00 00 00 00 00 00 00 ff 00 00 87 00 ff ff ff ff\\
ff ff ff ff ff ff ff ff ff ff ff 00 00 {\color{red}00} 00 ff\\
00 00 87 00 ff ff ff ff ff ff ff ff ff ff ff ff\\
ff ff ff 00 00 00 00 ff 00 00 {\color{red}87} 00 00 87 00 ff\\
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff\\
00 00 ff 00 00 ff 00 00 ff 00 ff ff ff ff ff ff\\
ff ff ff 00 00 00 00 ff 00 00 {\color{red}87} 00 ff ff ff ff\\
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff\\
00 00 87 00 00 87 00 00 87 00 00 87 00 00 87 00\\
ff ff ff 00 00 00 00 ff 00 00 ff 00 00 ff 00 00\\
ff 00 00 ff 00 00 ff 00 00 ff 00 00 00 00

\centering
\includegraphics[width=2.5cm]{F.eps}
\end{column}
\begin{column}{0.6\textwidth}
\scriptsize
Nombre total d'octet (deux chiffres hexadécimaux) :\[14\cdot 16-2=222_D={\color{red}de}_H\]
Nombre de bits par pixel en vraie couleurs :\[24_D={\color{red}18}_H\]
Taille image 7 pixel sur 7 pixel (3 octets par pixel avec un  nombre d'octets multiple de 4 par ligne \(\Rightarrow\) 3 octets suppl. par ligne):\[7\cdot 7+3\cdot 7=168_D={\color{red}a8}_H\]
{\color{red}00} dans les octets suppémentaires par ligne.\\
{\color{red}87} pour la couleur verte sombre (bichromie).
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Le modèle RVB}
\begin{columns}
\begin{column}{0.4\textwidth}
\includegraphics[width=6cm]{RVBTSVGimp.eps}
\end{column}
\begin{column}{0.6\textwidth}
\begin{description}
\item[R] 8 bits, 1 octet \(\rightarrow\) 256 niveaux de rouge\\{\tiny(0 pas de rouge, 255 rouge pur)}
\item[V] 8 bits, 1 octet \(\rightarrow\) 256 niveaux de vert\\{\tiny(0 pas de vert, 255 vert pur)}
\item[B] 8 bits, 1 octet \(\rightarrow\) 256 niveaux de bleu\\{\tiny(0 pas de bleu, 255 bleu pur)}
\end{description}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Le modèle Teinte-Saturation-Valeur}
\begin{columns}
\begin{column}{0.4\textwidth}
\includegraphics[width=5cm]{TSVRVBGimp.eps}
\end{column}
\begin{column}{0.6\textwidth}
\begin{description}\scriptsize
\item[Teinte] correspond à la couleur sur 360\(^\circ\). Le rouge se situe à 0\(^\circ\), le vert à 120\(^\circ\) et le bleu à 240\(^\circ\) selon un angle trigonométrique.
\item[Saturation] correspond à la quantité de couleur ''dans`` le blanc.
\item[Valeur] correspond, quant à elle, à la quantité de couleur ''dans`` le noir.
\end{description}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Exemples}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=4cm]{SatVal.eps}

Bleu peu saturé

\includegraphics[width=4cm]{BleuPeuSat.eps}
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=4cm]{ValSat.eps}

Bleu peu valorisé

\includegraphics[width=4cm]{BleuPeuVal.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Mathématiquement}
\small
Si on considère M et m, respectivement, comme le maximum et le minimum des valeurs de l'ensemble (R,V,B), les valeurs T, S et V sont données par l'ensemble des relations ci-dessous où \(T\in[0,360]\).

\begin{align*}\label{rvbtsv}%\tiny
 T&=\left\{
 \begin{array}{ll}
  0 & \text{si } M=m \\
  60\cdot \frac{V-B}{M-m}+ 0^\circ & \text{si } M=R \text{ et } V\geqslant B\\
  60\cdot \frac{V-B}{M-m}+ 360^\circ & \text{si } M=R \text{ et } V< B\\
  60\cdot \frac{B-R}{M-m}+ 120^\circ & \text{si } M=V\\
  60\cdot \frac{R-V}{M-m}+ 240^\circ & \text{si } M=B
 \end{array}
 \right.\\
 S&=\left\{
 \begin{array}{ll}
  0 & \text{si } M=0\\
  (1-\frac{m}{M})\cdot 100 & \text{sinon}
 \end{array}
 \right.\\
 V&=\frac{M}{255}\cdot 100
\end{align*}
\end{frame}

\begin{frame}{Exercices}
\definecolor{monbleu}{rgb}{0.13,0.22,0.94}
\definecolor{monbleuvert}{rgb}{0.09,0.94,0.78}
\definecolor{monorange}{rgb}{1,0.91,0.69}

Trouvez les valeurs TSV des couleurs en RVB suivantes et décrivez la couleur :

\medskip
\only<1>{(34,56,239) ;

(22,240,200) ;

(255,231,176). }

\medskip
\only<2>{(34,56,239) \(\rightarrow\) (234,86,94) {\color{monbleu}bleu très saturé et valorisé} ;

(22,240,200) \(\rightarrow\) (169,91,94) {\color{monbleuvert}bleu-vert très saturé et vlorisé} ;

(255,231,176) \(\rightarrow\) (42,31,100) {\color{monorange}orange peu saturé et très valorisé}.}
\end{frame}

\begin{frame}{L'outils courbe}
\begin{columns}
\begin{column}{0.45\textwidth}
\includegraphics[width=4.6cm]{OutilCourbes.eps}
\end{column}
\begin{column}{0.55\textwidth}
Description :

\textbf{Abscisse} : Niveaux de gris pour la valeur d'entrée.

\textbf{Ordonnée} : Nombre de pixels de la valeur donnée.

La valeur de sortie correspond à la valeur d'entrée si la courbe est une droite diagonale.

A gauche se trouve le \emph{point noir} et à droite le \emph{point blanc}.
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Outil courbe : correction d'une dominante \(\rightarrow\) pointer un pixel devant être gris, puis imposer RVB identiques}
\begin{columns}
\begin{column}{0.25\textwidth}
Original

\includegraphics[width=3cm]{TourBleue.eps}
\end{column}
\begin{column}{0.25\textwidth}
Répartition des tons bleus

\includegraphics[width=2.6cm]{TourCourbeB.eps}
\end{column}
\begin{column}{0.25\textwidth}
Répartition des tons verts

\includegraphics[width=2.6cm]{TourCourbeV.eps}
\end{column}
\begin{column}{0.25\textwidth}
Répartition des tons rouges

\includegraphics[width=2.6cm]{TourCourbeR.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Original et correction de dominante}
\begin{columns}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{TourBleue.eps}
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{Tour.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Compression RLE : non destructive}
\textsc{\LARGE Codage par plage ou Run-Length Encoding.}

\medskip
Chaque octet (deux nombres hexadécimaux) est codé par le nombre de ses occurences successives et sa valeur.
	\begin{block}{La chaine \dots}
00 00 00 0A 12 00 00 23 23 23 23 12 12 AB AB AB AB AB
\end{block}
\begin{block}{est alors codée de la manière suivante :}
03 00 01 0A 01 12 02 00 04 23 02 12 05 AB
\end{block}
On a en effet, 03 octets 00, 01 octet 0A, 01 octet 12, 02 octets 00, 04 octets 23, 02 octets 12 et 05 octets AB.
\end{frame}

\begin{frame}[containsverbatim]{RLE : inconvénients}
Plus il existe de plages identiques, plus la compression est importante.

Par contre, pour des images très détaillées, ce codage peut augmenter la taille de l'image :
\begin{block}{Un effet regrettable}
01 00 AE AB 1C 3F \(\rightarrow\) 01 01 01 00 01 AE 01 AB 01 1C 01 3F
\end{block}
Adapté à de grands aplats de couleurs identiques et aux images monochrome ou en un nombre restreint de couleurs (256 par exemple). Utilisé pour les icones ou les documents au trait.
\end{frame}

\begin{frame}{Compression de Huffmann : non destructive}

{\color{red} Idée : coder les lettres fréquentes par des bits de poids faibles.}
\begin{block}{Une chaine comprenant cinq lettres}
ssionnansnni \(\leftarrow\) oaisn
\end{block}
Pour coder cinq lettres, il faut au minimum trois bits : \(2^3=8\).
\begin{block}{Un codage peu intelligent}
\(o\,\rightarrow\,000\; ; \;a\,\rightarrow\,001\; ; \;i\,\rightarrow\,010\; ; \;s\,\rightarrow\,011\; ; \;n\,\rightarrow\,100\)
\end{block}
Le résultat est une chaine de \(12\cdot 3=36\,\text{bits}\) pour douze caractères.
\begin{block}{La chaine encodée}
011|011|010|000|100|100|001|100|011|100|100|010
\end{block}
\end{frame}

\begin{frame}{Méthode : éléments de plus basse fréquence 2 à 2.}
\begin{block}{Arbre de Huffman : {\color{red} construction}}
\[\xymatrix @=5mm {
& {\color{red} 12\times}\\
n \ar[-1,1]^{\color{red} 5\times} & & {\color{red} 7\times} \ar[-1,-1] \\
 & s \ar[-1,1]^{\color{red} 3\times} & & {\color{red} 4\times} \ar[-1,-1] \\
 & & i \ar[-1,1]^{\color{red} 2\times} & & {\color{red} 2\times} \ar[-1,-1] & \\
 & & & a \ar[-1,1]^{\color{red} 1\times} & & o \ar[-1,-1]_{\color{red} 1\times}
}\]
\end{block}
\end{frame}

\begin{frame}{Méthode : 1 sur bit fort pour éléments basse fréquence.}
\begin{block}{Arbre de Huffman : {\color{red} codage}}
\[\xymatrix @=4mm {
& 12\times \ar[1,-1]_{\color{red} 0} \ar[1,1]^{\color{red} 1}\\
(0)\,n & & 7\times \ar[1,-1]_{\color{red} 0} \ar[1,1]^{\color{red} 1} \\
 & (10)\,s & & 4\times \ar[1,-1]_{\color{red} 0} \ar[1,1]^{\color{red} 1} \\
 & & (110)\,i & & 2\times \ar[1,-1]_{\color{red} 0} \ar[1,1]^{\color{red} 1} & \\
 & & & (1110)\,a & & o\,(1111)
}\]
\end{block}
\end{frame}

\begin{frame}{Codage de Huffmann}
Selon l'arbre de Huffmann, la lettre n est codée 0, la lettre s est codée 10, la lettre i est codée 110, la lettre a est codée 1110 et la lettre o codée 1111
\begin{block}{Codage de Huffmann}
ssionnansnni \(\rightarrow\) 10|10|110|1111|0|0|1110|0|10|0|0|110
\end{block}
soit 25 bits au lieu de 36 ! Une compression de 30\% !

De plus, le codage permet la suppression des bits nuls de poids fort. Le codage est UNIVOQUE.
\end{frame}

\begin{frame}{Méthode : on lit simplement en suivant l'arbre.}
\begin{block}{Arbre de Huffman : {\color{red} décodage} {\color{red} 10}10110\dots}
\[\xymatrix @=4mm {
& {\color{red} 12\times} \ar[1,-1]_{0} \ar[1,1]^{1}\\
(0)\,n & & {\color{red} 7\times} \ar[1,-1]_{0} \ar[1,1]^{1} \\
 & {\color{red} (10)\,s} & & 4\times \ar[1,-1]_{0} \ar[1,1]^{1} \\
 & & (110)\,i & & 2\times \ar[1,-1]_{0} \ar[1,1]^{1} & \\
 & & & (1110)\,a & & o\,(1111)
}\]
\end{block}
\end{frame}

\begin{frame}{Exercices}
Déterminez le poids de l'image du double F précédemment présentée, mais codée selon RLE puis selon Huffmann.
\end{frame}

\begin{frame}[containsverbatim]{Compression RLE pour le double F}
\begin{columns}
\begin{column}{0.5\textwidth}
\tiny
\begin{Verbatim}[fontsize=\relsize{-0.4}]
42 4d de 00 00 00 00 00 00 00 36 00 00 00 28 00
00 00 07 00 00 00 07 00 00 00 01 00 18 00 00 00
00 00 a8 00 00 00 13 0b 00 00 13 0b 00 00 00 00
00 00 00 00 00 00 00 ff 00 00 87 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 87 00 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 87 00 00 87 00 ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 ff 00 00 ff 00 00 ff 00 ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 87 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 87 00 00 87 00 00 87 00 00 87 00 00 87 00
ff ff ff 00 00 00 00 ff 00 00 ff 00 00 ff 00 00
ff 00 00 ff 00 00 ff 00 00 ff 00 00 00 00
\end{Verbatim}
\scriptsize
16 x 14 - 2 = 222 octets
\end{column}
\begin{column}{0.5\textwidth}
\tiny
\begin{Verbatim}[fontsize=\relsize{-0.4}]
01 42 01 4d 01 de 07 00 01 36 03 00 01 28 03 00
01 07 03 00 01 07 03 00 01 01 01 00 01 18 05 00
01 a8 03 00 01 13 01 0b 02 00 01 13 01 0b 0B 00
01 FF 02 00 01 87 01 00 0F FF 04 00 01 FF 02 00
01 87 01 00 0F FF 04 00 01 FF 02 00 01 87 02 00
01 87 01 00 0C FF 04 00 01 FF 02 00 01 FF 02 00
01 FF 02 00 01 FF 01 00 09 FF 04 00 01 FF 02 00
01 87 01 00 0F FF 04 00 01 FF 02 00 01 87 02 00
01 87 02 00 01 87 02 00 01 87 02 00 01 87 01 00
03 FF 04 00 01 FF 02 00 01 FF 02 00 01 FF 02 00
01 FF 02 00 01 FF 02 00 01 FF 02 00 01 FF 04 00
\end{Verbatim}
\scriptsize
16 x 11 = 176 octets
\end{column}
\end{columns}
\[\text{compression : } c=\frac{222-176}{222}\cdot 100=20,7\,\%\]
\end{frame}

\begin{frame}[containsverbatim]{Compression de Huffmann pour le double F}
\begin{columns}
\begin{column}{0.4\textwidth}
\tiny
\begin{Verbatim}[fontsize=\relsize{-0.4}]
42 4d de 00 00 00 00 00 00 00 36 00 00 00 28 00
00 00 07 00 00 00 07 00 00 00 01 00 18 00 00 00
00 00 a8 00 00 00 13 0b 00 00 13 0b 00 00 00 00
00 00 00 00 00 00 00 ff 00 00 87 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 87 00 ff ff ff ff ff ff ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 87 00 00 87 00 ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 ff 00 00 ff 00 00 ff 00 ff ff ff ff ff ff
ff ff ff 00 00 00 00 ff 00 00 87 00 ff ff ff ff
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
00 00 87 00 00 87 00 00 87 00 00 87 00 00 87 00
ff ff ff 00 00 00 00 ff 00 00 ff 00 00 ff 00 00
ff 00 00 ff 00 00 ff 00 00 ff 00 00 00 00
\end{Verbatim}
\scriptsize
16 x 14 - 2 = 222 octets
\end{column}
\begin{column}{0.6\textwidth}
\begin{center}
\begin{tabular}{l|l}
Octets & Fréquence \\ \hline
42, 4d, de, 36, & \\
28, 01, 18, a8 & 1\\ 
07, 13, 0b & 2 \\ 
87 & 10 \\ 
ff & 85 \\ 
00 & 113
\end{tabular}
\end{center}

\[\text{14 symboles : } 2^4=16 \Rightarrow \text{4 bits}\]
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Arbre de Huffmann}
\[\xymatrix @C=0pt @R=7pt {
& 00 & & 222\times \ar[0,-2]_{0} \ar[1,1]^{1} \\
& & ff & & 109\times \ar[0,-2]_{0} \ar[1,1]^{1} \\
& & & 87 & & 24\times \ar[0,-2]_{0} \ar[1,3]^{1} \\
& & 6\times \ar[1,-1]_{0} \ar[1,1]^{1} & & & & & & 14\times \ar[0,-6]_{0} \ar[1,0]^{1}\\
& 4\times \ar[1,-1]_{0} \ar[1,1]^{1} & & 0b & & & & & 8\times \ar[1,-4]_{0} \ar[1,4]^{1}\\
13 & & 07 & & 4\times \ar[1,-2]_{0} \ar[1,2]^{1} & & & & & & & & 4\times \ar[1,-2]_{0} \ar[1,2]^{1} \\
& & 2\times \ar[1,-1]_{0} \ar[1,1]^{1} & & & & 2\times \ar[1,-1]_{0} \ar[1,1]^{1} & & & & 2\times \ar[1,-1]_{0} \ar[1,1]^{1} & & & & 2\times \ar[1,-1]_{0} \ar[1,1]^{1} & \\
& a8 & & 18 & & 01 & & 28 & & 36 & & de & & 4d & & 42
}\]
\end{frame}

\begin{frame}{Codage de Huffmann}
Arbre binaire => 14 symboles sur 7 bits !
\begin{center}
\begin{tabular}{lll|l}
Octets & Fréquence & codage & Total \\ \hline
42, 4d, de, 36, & & & \\
28, 01, 18, a8 & 1 & 7 bits \(\Rightarrow 8\cdot 7 =\) & 56 bits \\ 
07, 13, 0b & 2 & 6 bits \(\Rightarrow 3\cdot 2\cdot 6 =\) & 36 bits \\ 
87 & 10 & 3 bits \(\Rightarrow 10\cdot 3 =\) & 30 bits \\ 
ff & 85 & 2 bits \(\Rightarrow 85\cdot 2 =\) & 170 bits \\ 
00 & 113 & 1 bits \(\Rightarrow 113\cdot 1 =\) & 113 bits \\ \hline
 &  & total : 405 bits = & 51 octets
\end{tabular}
\end{center}

\[\text{Compression : } c = \frac{222-51}{222}\cdot 100 = 77 \%\]
\end{frame}


\begin{frame}{Principaux formats d'image : TIFF}
\begin{itemize}
 \item \textbf{TIFF ou Tag Image File Format} : professionnels de l'image.
 \item Non compressé : images sans perte de qualité.
 \item Compressé (LZW (Lempel-Ziv-Welch) pour images ayant peu de couleurs ou d'autres \dots) sans perte de définition (non destructif).
 \item Taille importante : pas recommandé pour une utilisation sur le web.
 \item Format propriétaire (Adlus, Adobe). Avec le JPG et malgré qu'il soit propriétaire, c'est le format de numérisation du ministère de la culture en France.
\end{itemize}
\end{frame}

\begin{frame}{Principaux formats d'image : JPG}
\begin{itemize}
 \item \textbf{JPG ou Joint Photographic Expert Group} : format du web.
 \item Compressé en fonction de la qualité de l'image finale désirée (RLE, Huffmann et transformée de fourier).
 \item Pas un format propriétaire mais plutôt une norme publique, même si certains en revendiquent la paternité.
 \item Utilisé communément par les appareils photographique numérique.
 \item C'est LE format le plus utilisé aujourd'hui.
\end{itemize}
\end{frame}

\begin{frame}{Principaux formats d'image : GIF}
\begin{itemize}
 \item \textbf{GIF ou Graphics Interchange Format} : format 8 bits, c'est-à-dire avec au maximum 256 couleurs.
 \item Images sont donc de petite taille adaptées au web.
 \item Images de type logo ou dessin animés. Banderoles et autres petits dessins animés égayant les pages web.
 \item Ce format totalement propriétaire (Compuserve) est maintenant dans le domaine publique depuis peu.
\end{itemize}
\end{frame}

\begin{frame}{Principaux formats d'image : PNG}
\begin{itemize}
 \item \textbf{PNG ou Portable Network Graphics} : destiné à remplacer progressivement le format GIF sur internet.
 \item Meilleur taux de compression (compression png) que le GIF.
 \item Format totalement libre.
\end{itemize}
\end{frame}

\begin{frame}{Principaux formats d'image : EPS}
\begin{itemize}
 \item \textbf{EPS ou Encapsuled PostScript} directement à une imprimante postscript.
 \item Gère des images de type bitmap (ensemble de points) ou vectorielle (des courbes et lignes).
 \item Comprend le RVB ou le CMJN.
 \item Pas un format propriétaire.
 \item Format d'image. Ne pas confondre avec le PostScript qui n'est pas à proprement parlé un format d'image, mais un langage d'instruction d'impression.
\end{itemize}
\end{frame}

\begin{frame}{Principaux formats d'image : PDF}
\begin{itemize}
 \item \textbf{PDF ou Portable Document Format} visualisation et l'impression d'un document indépendamment de la plate-forme.
 \item Peu gourmand en espace et est donc intéressant pour le web.
 \item Non compressé ou compressé non destructif.
 \item Format propriétaire (Adobe), mais ouvert et parfaitement documenté.
\end{itemize}
\end{frame}

\subsection{Le son}

\begin{frame}{La physique du son}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Décomposition de Fourrier\endnote{Voir Wikicommon : \url{http://commons.wikimedia.org/wiki/File:Fourier\_d\%27un\_carr\%C3\%A9.svg}}}
\begin{center}
 \includegraphics[width=5cm]{Images/Fourier_dun_carre.eps}
\end{center}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Onde sinusoidale\endnote{Voir Wikicommon : \url{http://commons.wikimedia.org/wiki/File:Onde\_endroit\_fixe.png}}}
\begin{center}
 \includegraphics[width=5cm]{Images/Onde_endroit_fixe.eps}
\end{center}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Échantillonnage}
\input{GNUplot/Echantillonage}
\end{frame}

\begin{frame}{Quantification}
\input{GNUplot/Quantification}
\end{frame}

\begin{frame}{Numérisation du signal : histogramme et codage sur 3 bits}
Attention, un codage sur trois bits introduit un fort bruit. Il faut, pour avoir un rendu correct de la musique, au minimum 16 bits de dynamique (quantification). Le codage hexadécimal est alors adéquat.

\medskip
\begin{tabular}{l|llllllllllll}
V(k) & 1 & 2 & 3 & 4 & 5 & 6 & 7 & 8 & 9 & 10 & 11 & 12 \\ \hline
déc & 0 & 1 & 3 & 4 & 4 & 4 & 4 & 3 & 2 & 0 & 0 & -2 \\ 
bin & 0 & 1 & 11 & 100 & 100 & 100 & 100 & 11 & 10 & 0 & 0 & 110\\
hex & 0 & 1 & 3 & 4 & 4 & 4 & 4 & 3 & 2 & 0 & 0 & ?
\end{tabular}
\end{frame}

\begin{frame}{Grandeurs importantes}
Plusieurs grandeurs sont à considérer :
\begin{itemize}
\item durée du morçeau,
\item fréquence maximale du signal
\item fréquence d'échantillonage (thm de Shannon) : double de la fréquence maximale suffit
\item dynamique, nombre de bit de quantification
\item nombre de canaux (2.0 : stéréo, pas de caisson de basse ; 5.1 : trois haut-parleurs avant, deux arrières et un caisson de basse)
\end{itemize}
\end{frame}

\begin{frame}{Formats audio-numériques}
La gamme des fréquences audibles se situe entre 20 Hz et 20 kHz. Shannon implique donc : \(f_e\geqslant40'000\,Hz\) (44'100 car une ligne PAL 294 points de trois couleurs à 50 images par seconde, soit \(294\cdot 3\cdot 50=44'100\)).

Le flux ou ''bitrate`` se calcule par la multiplication de l'échantillonage par la quantification (en kilobits/s ou kbps) et le nombre de canaux.

\medskip
\begin{tabular}{l|lllll}
Support & Phone & DV & CD aud & DVD vid & DVD HD \\ \hline
Échant. (Hz) & 8'000 & 48'000 & 44'100 & 48'000 & 96'000 \\ 
Quantif. (bits) & 8 & 16 & 16 & 16 & 24 \\ 
Canaux & 1 & 2 & 2 & 6 & 8 \\
Flux (kbits/s) & 62,5 & 1500 & 1378,1 & 4500 & 18000
\end{tabular}
\end{frame}

\begin{frame}{Fichiers, conteneurs, formats, extension, codecs et encodeur}
\includegraphics[width=11cm]{Format_mp3.eps}
\end{frame}

\begin{frame}{Principaux formats et codecs audio}
\begin{block}{WAV}
Conteneur : mp3, pcm, wma \dots, mais par référence non compressé : 10 Mo/min \(= 44'100\cdot 16\cdot 2\cdot 60/8/1024/1024\)
\end{block}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{MP3}
Compression destructive (ds hautes fréquences)

Rapport 1/10 wav ; débit fixe 1Mo/min (CD)

Tag ID3
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{OGG/VORBIS}
Compression destructive ; mieux mp3

Rapport 1/10 wav ; débit variable

Tag ID3 ; libre ; encodeur oggenc
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Suite}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{FLAC}
Free Lossless Audio

Compression sans pertes

Rapport 1/7 wav

Libre
\end{block}

\begin{block}{AAC}
Advanced Audio Coding

Compression destructive

Rapport 1/10 wav ; Ipod, Itune

Meilleur car MPEG-4 ; encodeur faac
\end{block}

\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{WMA}
Windows Media Audio

Compression destructive

Rapport variable

Dispositifs anticopie
\end{block}
\end{column}
\end{columns}
\end{frame}


\subsection{Programmation}

\section{Annexes}
\subsection{Motorisation télescope}

\begin{frame}{Exemple : ``Un projet télescopique''\hypertarget{projettelescopique}{}}
\begin{description}[Moyens matériels]
\item[Objectif] Réaliser le suivi d'une étoile guide par la motorisation du télescope du lycée.
\item[Moyens matériels] Deux moteurs, une carte de commande sur port parallèle, un ordinateur portable.
\item[Moyens logiciels] Aucun driver, un logiciel libre de suivi et de photographie astronomique pour webcam.
\item[Rejetés] Iris (fantastique logiciel gratuit de traitement d'images astro) car seuls les montures motorisées de type LX200 sont prévues. Code source fermé \(\Rightarrow\) accord et implication du développeur.
\end{description}
\end{frame}

\begin{frame}
\begin{columns}
\begin{column}{0.4\textwidth}
\includegraphics[width=5cm]{cartes.eps}

\smallskip
\includegraphics[width=4cm]{comiop.eps}
\end{column}
\begin{column}{0.1\textwidth}
\centering C++

\(\Leftrightarrow\)
\end{column}
\begin{column}{0.5\textwidth}
\includegraphics[width=5cm]{qastrocam.eps}
\end{column}
\end{columns}
\end{frame}


\begin{frame}[containsverbatim]{Intégration du code}
\begin{columns}
\begin{column}{0.4\textwidth}
Qastrocam
\tiny \url{http://3demi.net/astro/qastrocam/doc/}

\medskip
\centering \includegraphics[width=2cm]{mascote-noir-med.eps}
\end{column}
\begin{column}{0.6\textwidth}
Code source ajouté à qastrocam :

\lstset{language=C,basicstyle=\tiny,frame=none,numbers=left,numberstyle=\tiny,stepnumber=1,numbersep=5pt,showstringspaces=false,breaklines=true,keywordstyle=\color{blue},commentstyle=\color{vert},stringstyle=\color{red},identifierstyle=\ttfamily}
\begin{lstlisting}
#ifndef _QTelescopeLBC_hpp_
#define _QTelescopeLBC_hpp_
#include "QTelescope.hpp"
class PPort;
void *runEW(void *arg);
void *runSN(void *arg);
class QTelescopeLBC : public QTelescope {
    Q_OBJECT;
public:
    QTelescopeLBC(PPort * pport);
    void goE(float shift);
    void goW(float shift);
    void goS(float shift);
    void goN(float shift);
    void stopE();
    void stopW();
    void stopS();
    void stopN();
    void threads_start();
    void threads_stop();
    double setSpeed(double speed);
    bool setTracking(bool activated);
};
#endif
\end{lstlisting}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Limites du projet}
Critiques importantes :
\begin{itemize}
\item Ouverture du code : bien \(\Rightarrow\) adaptation spécifique au télescope du lycée.

Mais cette adaptation est versatile à cause des mises-à-jour \(\Rightarrow\) nécessité d'une documentation précise permettant la recompilation du logiciel modifié (impossible sans code source !).
\item Pérénité de l'adaptation \(\Rightarrow\) soutient des développeurs (déchargés de produire l'adaptation).
\item Reste toujours la possibilité de fork (projet indépendant).
\end{itemize}

\medskip
\hyperlink{ouvertureducode}{\beamerbutton{retour licences libres}}
\end{frame}

\subsection{OpenOffice}

\begin{frame}{Le contexte d'OpenOffice\hypertarget{OOstyles}{}}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}<+->{\small Microprojet}
Récupérer la page ``informatique'' de Wikipedia pour impression.
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}<+->{\small Problèmes rencontrés}
\begin{itemize}
\item Copier--coller : plantage OO-2.4.
\item Copier--coller-texte : pas de structure.
\item Table des matières incorrecte.
\item Liens soulignés et en bleu.
\item Notes de fin non actives.
\item Références non actives.
\item Image non référencée.
\end{itemize}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Pas de problèmes, que des solutions}

\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{\small Problèmes rencontrés}
\begin{itemize}
\hilite<1> \item Copier--coller : plantage OO-2.4.
\hilite<2> \item Copier--coller-texte : pas de structure.
\hilite<3> \item Table des matières incorrecte.
\hilite<4> \item Liens soulignés et en bleu.
\hilite<5> \item Notes de fin non actives.
\hilite<6> \item Références non actives.
\hilite<7> \item Image non référencée.
\end{itemize}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{\small Solutions}
\begin{itemize}
\item<1-> OO-3 ; découper le document.
\item<2-> Utiliser les styles.
\item<3-> Styles et index.
\item<4-> Styles de liens.
\item<5-> Pénible ou XML.
\item<6-> Base de donnée OO
\item<7-> Légende : table des illustrations.
\end{itemize}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{OpenOffice, Xhtml, XML}
Background de la mise en forme sous OO.
\begin{columns}
\begin{column}{0.25\textwidth}
\begin{block}<+->{\small OO et XML}
\Large OO -- XML

.odt \(\leftrightarrows\) .zip
\end{block}
\end{column}
\begin{column}{0.75\textwidth}
\begin{block}<+->{\small Structure archive zip}
\begin{description}[settings.xml]
\item[meta.xml] donne des informations générales sur le document : auteur, dates \dots
\item[styles.xml] contient les styles utilisés,
\item[content.xml] contient le contenu du document,
\item[settings.xml] qui contient des informations relatives aux applications utilisées (imprimantes, \dots).
\end{description}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Exemple}
\begin{columns}
\begin{column}{0.4\textwidth}
Une structure classique :

titres hiérarchisés.
\end{column}
\begin{column}{0.3\textwidth}
\centering \includegraphics[width=2cm]{TitresOO.eps}
\end{column}
\end{columns}
\end{frame}


\begin{frame}[containsverbatim]{Traduction en XML \hyperlink{OOstylesretour}{\beamerbutton{Retour OpenOffice}}}
\tiny
\begin{lstlisting}[language=XML,breaklines=true]
<office:body>
 <office:text>
  </text:sequence-decls>
   <text:h text:style-name="Heading_20_1" text:outline-level="1">Les transports</text:h>
   <text:p text:style-name="Standard"/>
   <text:h text:style-name="Heading_20_2" text:outline-level="2">Pour les jeunes</text:h>
   <text:h text:style-name="Heading_20_3" text:outline-level="3">Le skate</text:h>
   <text:p text:style-name="Standard">Planche a roulette</text:p>
   <text:h text:style-name="Heading_20_3" text:outline-level="3">Le roller</text:h>
   <text:p text:style-name="Standard">Patins a roulette</text:p>
   <text:h text:style-name="Heading_20_3" text:outline-level="3">le velo</text:h>
   <text:p text:style-name="Standard">Deux roues</text:p>
   <text:h text:style-name="Heading_20_2" text:outline-level="2">Pour les vieux</text:h>
   <text:h text:style-name="Heading_20_3" text:outline-level="3">La voiture</text:h>
   <text:p text:style-name="Text_20_body">Quatre roues</text:p>
   <text:h text:style-name="Heading_20_3" text:outline-level="3">Le bateau</text:h>
   <text:p text:style-name="Text_20_body">Une coque</text:p>
 </office:text>
</office:body>
\end{lstlisting}
\end{frame}

\subsection{Évaluations}

\begin{frame}{Premier semestre : deux évaluations écrites\hypertarget{evaluations}{}}
\begin{description}[Projet présentation]
\item[Projet \textsc{texte}]
	\begin{itemize}
	 \item Rendre avant Noël,
	 \item Seul ou a deux (même note),
	 \item Utilisation de Scribus ou \LaTeX ~ou Code HTML,
	 \item Une seule feuille (recto-verso ; deux pages HTML) réalisée essent. pendant le cours,
	 \item Une page expliquant les problèmes rencontrés,
	 \item Une licence expliquée,
	 \item Tout compte.
	\end{itemize}
\item[Travail écrit] Sur le cours depuis le début de l'année, le premier jeudi de la rentrée de Noël.
\end{description}
\end{frame}

\begin{frame}{Second semestre : deux évaluations (orale ; écrite)}
Un projet à réaliser sur un semestre. Trois personnes par projet. Validation du projet le premier jeudi du second semestre par l'enseignant.
\begin{description}[Projet présentation]
\item[Projet présentation] Rapport oral intermédiaire présentant le travail accomplis, les problèmes rencontrés et ce qu'il reste à faire.
\item[Projet bilan] Restitution du projet.
\end{description}

\begin{flushright}
\hyperlink{evaluationsretour}{\beamerbutton{Retour cours}}
\end{flushright}
\end{frame}

\subsection{\LaTeX}

\begin{frame}[containsverbatim]{Structure générale}
\begin{columns}
\begin{column}{0.2\textwidth}
Fichier d'extension {\color{red}.tex}

\medskip
Structure identique au fichier source d'un programme d'informatique.
\end{column}
\begin{column}{0.8\textwidth}
\begin{block}{Préambule}
\begin{lstlisting}[language=tex,breaklines=true]
\documentclass[a4paper,10pt]{book}
\usepackage[options]{nom du paquet}
\end{lstlisting}
\end{block}
\begin{block}{Corps}
\begin{lstlisting}[language=tex,breaklines=true]
\begin{document}
...
\end{document}
\end{lstlisting}
\end{block}
\end{column}
\end{columns}

\medskip
Attention, \LaTeX n'est pas un language XML !
\end{frame}

\begin{frame}[containsverbatim]{Le préambule}
Voici un exemple de préambule commenté

(en \LaTeX les commentaires commencent par \%).

\begin{lstlisting}[language=tex,basicstyle=\tiny,breaklines=true]
\documentclass[a4paper,10pt]{book}
\usepackage[T1]{fontenc}	% Pour les accents
\usepackage[utf8]{inputenc}	% Pour la gestion de l'encodage
\usepackage[french]{babel}	% Pour la gestion de la typo francaise
\usepackage{verbatim}		% Pour mettre des commentaires etendus
\usepackage{graphicx}		% Pour mettre des images
\graphicspath{{./Images/}}	% Pour eviter de mettre le chemin des images
\usepackage{fancyhdr}		% Pour des entetes
\fancyhead[RE,LO]{Lycee Blaise Cendrars\\La Chaux-de-Fonds}
\fancyhead[LE,RO]{\thepage}
\lfoot{} \cfoot{} \rfoot{}
\pagestyle{fancy}		% Pour un style de page particulier

\title{Galilee (savant)}	% A mettre dans le titre
\author{Un article de Wikipedia, l'encyclopedie libre.}

\setlength{\headheight}{22.6pt}	% pour elargir un peu l'entete
\end{lstlisting}
\end{frame}

\begin{frame}[containsverbatim]{Le corps}
Voici un exemple de structure du corps du document.
\begin{lstlisting}[language=tex,basicstyle=\tiny,breaklines=true]
\begin{document}		% Debut du corps du document
\maketitle			% Cree une page de titre
\begin{comment}			% Pour un commentaire long
...
\end{comment}
...
\tableofcontents{}		% Cree une table des matieres

\chapter{Premier chapitre}	% Premier chapitre
\section{Sous-titre}		% Premiere section
...
\section{Sous-titre}		% Seconde section
...
\end{document}			% Fin du corps du document
\end{lstlisting}
\end{frame}

\begin{frame}[containsverbatim]{Quelques commandes de base}
Évidemment, la richesse de \LaTeX tient dans celle de ses commandes.

En voici quelques-unes :

\bigskip

\begin{columns}
\begin{column}[t]{4cm}
Maths hors ligne :

\begin{lstlisting}[language=tex,basicstyle=\tiny,breaklines=true]
\[E=m\cdot c^2\]
\end{lstlisting}

Maths en ligne :

\begin{lstlisting}[language=tex,basicstyle=\tiny,breaklines=true]
\(E=m\cdot c^2\)
\end{lstlisting}
\end{column}
\begin{column}[t]{4cm}
\[E=m\cdot c^2\]

\(E=m\cdot c^2\)
\end{column}
\end{columns}

\begin{columns}
\begin{column}[t]{4cm}
Liste :

\begin{lstlisting}[language=tex,basicstyle=\tiny,breaklines=true]
\begin{itemize}
 \item Truc
 \item Chose
\end{itemize}
\end{lstlisting}
\end{column}
\begin{column}[t]{4cm}
Le résultat :

\begin{itemize}
 \item Truc
 \item Chose
\end{itemize}
\end{column}
\end{columns}
\end{frame}

\section{Internet}
\transdissolve

\subsection{Constituants des pages}

\begin{frame}{Constituants des pages}

\begin{block}{Un site web est constitué de :}
\begin{itemize}
\pause
\item Structure et contenu HTML ou XHTML
\pause
\item Présentation avec les feuilles de style CSS
\pause
\item Graphisme et intégration des images GIF, JPG, PNG, MNG.
\pause
\item Anciennement, animation en Flash, aujourd'hui avec attributs CSS3 ou SVG et javascript.
\pause
\item Incorporation de multimédias (sons, vidéos...).
\pause
\item Dynamisme au niveau de la gestion de contenu (coté serveur) avec des langages de développement de type PHP, Java ... fonctionnant avec un serveur Web. 
\pause
\item Des bases de données de type SQL ou XML.
\end{itemize}
\end{block}
\end{frame}

\begin{frame}{Côté client}
La notion de client-serveur désigne un mode de communication dans un réseau, comme par exemple un réseau internet.

\pause
\begin{block}{Le client}
Le client envoie des requêtes. Exemple, l'utilisateur internaute clique sur un lien. Il envoie donc une requête au serveur sur lequel le site est installé. Il passe par un navigateur qui envoie la requête, puis interprète les pages HTML que lui retourne le serveur pour les afficher.
\end{block}

\end{frame}


\begin{frame}{Côté serveur}

\begin{block}{Le serveur}
\begin{columns}
\begin{column}{0.45\textwidth}
Le serveur attend les requêtes de l'utilisateur (serveur web), réunit ce qu'il est nécessaire pour composer une réponse (base de donnée), la construit (php) et la retourne au client.
\end{column}
\begin{column}{0.45\textwidth}
\centering
\includegraphics[scale=0.2]{Images/Html_serveur.eps} 
\end{column}
\end{columns}
\end{block}

\end{frame}



\subsection{Les CMS : Systèmes de Management de Contenu}

\begin{frame}{Beaucoup de choix}
\textbf{Ne pas refaire le monde. Dynamique en php et javascript déjà présente.}

Différents niveaux de pré-fabriqué, en fonction des besoins :
	\begin{enumerate}
		\item CMS déjà installé sur site. Un panneau de configuration \(\rightarrow\) quelques interactions aspects visuels - contenu. Problème : publicités.
		\item CMS à installer. Le contôle du code \(\rightarrow\) adaptation aux spécificités. Sécurité et mise-à-jour prises en charge par les développeurs du CMS.
		\item CMS sans structure php. HTML, CSS et javascript \(\rightarrow\) compatibilité navigateurs - mobiles. Problèmes : sécurité - mises-à-jour. Exemples : Initializr ou boilerplate (template).
	\end{enumerate}
\end{frame}

\begin{frame}{Un cms parmi d'autres : GetSimple}
	\begin{itemize}
		\item libre et gratuit, sous licence GPL3,
		\item un code propre en HTML5 et CSS3,
		\item une gestion privée des utilisateurs par interface graphique,
		\item une gestion privée des documents,
		\item différents modèles de sites pré-faits,
		\item la création de pages, via un éditeur simple,
		\item des mises-à-jour régulières, ...
	\end{itemize}
Tout cela nécessitant un serveur web, le langage php, mais pas de base de donnée SQL. Celle-ci est remplacée par un traitement XML des données.
\end{frame}

\begin{frame}{Installation}
Installation simple par dépôt ftp (sous filezilla par exemple).
\begin{block}{FTP : File Transfert Protocol}
Il s'agit d'un ensemble de règles de transfert d'information sur le réseau par copie de fichiers. On peut parler des outils nécessaires pour gérér des opérations de navigateur de fichiers sur des machines distantes.
\end{block}
\end{frame}

\begin{frame}{Résultat}
\begin{columns}
\begin{column}{0.5\textwidth}
Une page d'accueil
\smallskip
\includegraphics[width=5cm]{AccueilGetSimple.eps}
\end{column}
\begin{column}{0.5\textwidth}
Une zone d'administration
\smallskip
\includegraphics[width=5cm]{AdminGetSimple.eps}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Structure template}

\end{frame}

\subsection{HTML}

\begin{frame}{Versions}
 Il existe plusieurs versions de HTML qui ne sont pas compatibles avec tous les navigateurs.

 \medskip
 En 2014, la norme \emph{HTML5} devrait être officialisée. C'est donc sur celle-ci qu'on va se baser. Elle est compatible avec tous les navigateurs récents dans la pluspart des cas.
\end{frame}

\begin{frame}{Structure de balisage}
Attention, HTML 5 est moins strict que XHTML !

Bonne pratique : fermer les balises.
\begin{block}{Ouverture - fermeture}
{\small<nom\_balise> texte </nom\_balise>}
\end{block}
\begin{block}{Hiérarchie}
{\small{\color{red}<balise1>}{\color{blue}<balise2>}{\color{black} { }texte }{\color{blue}</balise2>}{\color{red}</balise1>}}
\end{block}
\end{frame}

\begin{frame}{Balisage}
\textbf{Structure :}
{\small<html>, <head>, <body>}

\textbf{Head :}
{\small <title>, <meta>, <style>, <link>, <script>}

\textbf{Body :}
{\small <div>, <header>, <article>, <nav>, <aside>, <footer>, <h1>, <h2-5>, <p>, <a> (lien internet), <table>, <tr> (ligne), <td> (colonne), <hr /> (ligne), <img />, <audio />, <video />, <br /> (saut ligne), <b>, <strong>, <i>, <em>, <span>, <button>, \dots}
\end{frame}

\begin{frame}{Attributs}
Les balises peuvent avoir des attributs ou propriétés :

\smallskip
\fbox{<balise {\color{red}attribut1=``valeur1'' attribut2=``valeur2''}> \dots{} </balise>}

\smallskip
Exemples :

\textbf{Liens internet :}

{\small<a {\color{red}href=``http://www.wikipedia.org''}> Wikipedia</a>}

\textbf{Ligne horizontale :}

{\small<hr {\color{red}width='150px' align='left'}/>}

\textbf{Image :}

{\small<img {\color{red}src=``/repertoire/image.jpg''}/>}

\textbf{Image - lien :}

{\small<a href=``http://www.google.ch''>Google</a>}

\end{frame}

\begin{frame}[containsverbatim]{Structure générale}
 La structure générale d'une page HTML est la suivante :
  \begin{columns}
  \begin{column}{0.3\textwidth}
  \begin{lstlisting}[language=HTML,basicstyle=\scriptsize,breaklines=true]
   <!DOCTYPE html>
   <html>
    <head>
      ...
    </head>
    <body>
      ...
    </body>
   </html>
  \end{lstlisting}
  \end{column}
  \begin{column}{0.7\textwidth}\scriptsize
   --> la déclaration du type HTML5 du document\\
   --> balise d'ouverture du document\\
   --> balise d'ouverture de l'entête\\
      ...\\
   --> balise de fermeture de l'entête\\
   --> balise d'ouverture du corps du document\\
      ...\\
   --> balise de fermeture du corps du document\\
   --> balise de fermeture du document
  \end{column}
  \end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Structure générale}
 La structure générale de l'entête est la suivante :
  \begin{columns}
  \begin{column}{0.55\textwidth}
  \begin{lstlisting}[language=HTML,basicstyle=\scriptsize,breaklines=true]
    <head>
      <meta charset="UTF-8" />
      <meta name="description"
	    content="Description page" />
      <meta name="author"
	    content="mon nom" />
      <title>Titre de la fenetre</title>
      <link rel="stylesheet"
	    href="style.css" />
      <style> ... </style>
      <script> ... </script>
    </head>
  \end{lstlisting}
  \end{column}
  \begin{column}{0.45\textwidth}\scriptsize
   --> balise d'ouverture de l'entête\\
    --> Codage des caractères utilisés\\
    --> balise de description de la page\\
    ...\\
    --> balise de déclaration de l'auteur\\
    ...\\
    --> balise de titre de la fenêtre\\
    --> balise de feuille de style externe\\
    ...\\
    --> balise de feuille de style interne\\
    --> balise de script\\
   --> balise de fermeture de l'entête
  \end{column}
  \end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Structure générale}
 La structure générale du corps est la suivante :
 \smallskip
  \begin{columns}
  \begin{column}{0.5\textwidth}
  \begin{lstlisting}[language=HTML,basicstyle=\scriptsize,breaklines=true]
    <body>
      <header> ... </header>
      <nav> ... </nav>
      <aside> ... </aside>
      <article> ... </article>
      ...
      <footer> ... </footer>
    </body>
  \end{lstlisting}
  \end{column}
  \begin{column}{0.5\textwidth}\scriptsize
   --> balise d'ouverture du corps\\
   --> balise de l'entête (logo, titre, \dots)\\
   --> balise de la barre de navigation\\
   --> balise de colonne latérale droite\\
   --> balises des articles \\
   --> \dots\\
   --> balise du pied de page (copyright, \dots)\\
   --> balise de fermeture du corps
  \end{column}
  \end{columns}
\end{frame}

\begin{frame}[containsverbatim]{Intégration des feuilles de styles}
Trois cas sont envisageables :
\begin{block}{Dans la balise.}
\begin{lstlisting}[language=HTML,basicstyle=\small,breaklines=true]
<p style=``color:red;font-size:100''>Texte</p>
\end{lstlisting}
\end{block}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Feuille interne}
\begin{lstlisting}[language=HTML,basicstyle=\scriptsize,breaklines=true]
<head>
  <style type="text/css">
  
  </style>
</head>
\end{lstlisting}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Feuille externe}
\begin{lstlisting}[language=HTML,basicstyle=\small,breaklines=true]
<head>
<link rel="stylesheet" type="text/css" href="feuille.css" />
</head>
\end{lstlisting}
\end{block}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Feuilles de styles : CSS}
Idée : séparer le contenu de la forme. Syntaxe :

\begin{center}
\fbox{sélecteur \{propriété:valeur\}}
\end{center}

\begin{columns}
\begin{column}{0.4\textwidth}
\small
\textbf{Exemples :}

\medskip
h1 \{font-size:120;\}

\smallskip
p \{font-family:``sans serif''; font-size:90\%; color:red\}
\end{column}
\begin{column}{0.6\textwidth}
\small
\textbf{Meilleure indentation :}

\smallskip
h1, h2 \{
\begin{tabbing}
  font-family: ``sans serif'';\\
  color: red;
\end{tabbing}
\}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Feuilles de styles : sélecteurs}

\begin{columns}
\begin{column}{0.5\textwidth}
\small
\textbf{Sélecteurs imbriqués :}

Toutes les sélections (span) de chaque paragraphes (p) sont passées en rouge.

\bigskip
<p>La voiture est <span>très</span> petite</p>

\medskip
p span \{color: red;\}

\smallskip
La voiture est {\color{red} très} petite
\end{column}
\begin{column}{0.5\textwidth}
\small
\textbf{Sélecteur identifié :}

Attention le sélecteur identifié est unique ! En d'autres termes, on ne peut mettre plusieurs identifiants identiques.

\bigskip
<p id=``cetexte''>Un pti texte</p>

\medskip
\#cetexte \{color: red\}

\smallskip
{\color{red} Un ptit texte}
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Feuilles de styles : CSS}
\begin{columns}
\begin{column}{0.5\textwidth}
\small
\textbf{Sélecteurs de classe :}
Il s'agit d'appliquer un style à un ensemble d'éléments donnés.

\bigskip
<h1 class=``laclass''>La </h1>

<em class=``laclass''>deux chevaux, </em>

<p class=``laclass''>sa puissance </p>

<p>c'est la lenteur.</p>

\medskip
.laclass \{color:red\}

\medskip
{\color{red}\smallskip
\textbf{La }
\emph{deux chevaux, }
sa puissance}
c'est la lenteur.
\end{column}
\begin{column}{0.5\textwidth}
\small
\textbf{Sélecteur contextuel :}
Il s'agit d'appliquer un style suivant le contexte.

\bigskip
<div>Le vélo, c'est bien</div>

\medskip
div:hover \{background-color: red;\}

\medskip
Ici, en passant la souris sur le div, il devient rouge.
\end{column}
\end{columns}
\end{frame}

\begin{frame}{Feuilles de styles : CSS}
\begin{columns}
\begin{column}{0.5\textwidth}
\small
\textbf{Plusieurs sélecteurs :}
Il s'agit d'appliquer le même style à plusieurs sélecteurs différents.

\bigskip
<h1>La </h1>

<em>deux chevaux, </em>

<p>sa puissance </p>

<p>c'est la lenteur.</p>

\medskip
h1, em, p \{color:red\}

\medskip
{\color{red}\smallskip
\textbf{La }
\emph{deux chevaux, }
sa puissance
c'est la lenteur.}
\end{column}
\begin{column}{0.5\textwidth}
\small
\textbf{Et d'autre encore \dots}
A découvrir.
\end{column}
\end{columns}
\end{frame}

\begin{comment}
%\begin{frame}[containsverbatim]{Structure générale}
\begin{frame}{Ancienne structure générale}
%\lstset{keywordstyle=\color{red},emph={body},emphstyle=\color{pink},emph=[2]head,emphstyle=[2]\color{yellow},emph=[3]html,emphstyle=[3]\color{blue}}
%\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
%\end{lstlisting}
\begin{footnotesize}
\begin{itemize}
\item \only<1>{Prologue XML, nécessaire que pour une utilisation XML de XHTML.\\}\only<1>{\color{red}<?xml version="1.0" encoding="utf-8"?>}\only<2->{<?xml version="1.0" encoding="utf-8"?>}
\item \only<2>{Déclaration de DOCTYPE ou DTD (Définition de Type de Document) : vocabulaire, grammaire et règles de mise en forme.\\}\only<2>{\color{red}<!DOCTYPE html PUBLIC\\"-//W3C//DTD XHTML 1.0 Strict//EN"\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">}\only<3->{<!DOCTYPE html PUBLIC\\"-//W3C//DTD XHTML 1.0 Strict//EN"\\"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">}
\item \only<3>{Espaces de nommage : XML name space et evt. langue.\\}\only<3>{\color{red}<html xmlns="http://www.w3.org/1999/xhtml"\\xmlns:svg="http://www.w3.org/2000/svg"\\xmlns:xlink="http://www.w3.org/1999/xlink">}\only<4->{<html xmlns="http://www.w3.org/1999/xhtml"\\xmlns:svg="http://www.w3.org/2000/svg"\\xmlns:xlink="http://www.w3.org/1999/xlink">}
\item \only<4>{Entête : titre, informations, déclaration de styles, scripts javascript \dots{}\\}\only<4>{\color{red}<head>
<title>Titre</title>\\
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />\\
<style type="text/css"> ... </style>\\
<script type="text/javascript" src="Script.js"/>\\
</head>}\only<5->{<head>
<title>Titre</title>\\
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />\\
<style type="text/css"> ... </style>\\
<script type="text/javascript" src="Script.js"/>\\
</head>}
\item \only<5>{Corps du document.\\}\only<6>{\color{red}<body>
...
</body>\\
</html>}\only<7->{<body>
...
</body>\\
</html>}
\end{itemize}
\end{footnotesize}
\end{frame}
\end{comment}

\subsection{Animation javascript}

\begin{frame}[containsverbatim]{Animation javascript 1 : image, gif animé}

\begin{columns}
\begin{column}{0.37\textwidth}
\begin{block}{Première idée :}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
<img src='tux.png'/>
\end{lstlisting}
\end{block}
\begin{block}{... avec un gif animé ...}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
<img src='robot.gif'/>
\end{lstlisting}
\end{block}
\end{column}
\begin{column}{0.6\textwidth}
\begin{block}{Déplacement du gif animé en javascript}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
function deplace(){
  identification = document.getElementById('robot')
  position = parseInt(identification.style.left)
  position = position + 10
  identification.style.left = position+"px"
  }
\end{lstlisting}
\end{block}
\end{column}
\end{columns}
\begin{center}
\href{run:Javascript/AnimationJavascript1.html}{\beamerbutton{Résultat}}

\href{run:Javascript/AnimationJavascript1.txt}{\beamerbutton{Code}}
\end{center}
\end{frame}

\begin{frame}[containsverbatim]{Animation javascript 2 : tableau d'images}
\begin{columns}
\begin{column}{0.5\textwidth}
On crée un tablau de références d'images :
\begin{block}{Tableau}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
var imgFiles = new Array (
  "Cours/Cours_e0000.gif",
  "Cours/Cours_e0001.gif",
  "Cours/Cours_e0002.gif",
  "Cours/Cours_e0003.gif",
  "Cours/Cours_e0004.gif",
  "Cours/Cours_e0005.gif",
  "Cours/Cours_e0006.gif",
  "Cours/Cours_e0007.gif"
  )
\end{lstlisting}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
On appelle à intervalle régulier la fonction :
\begin{block}{Animation}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
function animate(){
    frame += 1
    if (frame > imgFiles.length){
      frame = 0
    }
    spriteImage.src = imgFiles[frame]
  }
\end{lstlisting}
\end{block}
\end{column}
\end{columns}
\begin{center}
\href{run:Javascript/AnimationJavascript2.html}{\beamerbutton{Résultat}}

\href{run:Javascript/AnimationJavascript2.txt}{\beamerbutton{Code}}
\end{center}
\end{frame}

\begin{frame}[containsverbatim]{Animation javascript 3 : une seule image}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Frames juxtaposées en css}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
  #contenant {
    background-image: url("Cours/Cours_8.gif");
    height: 128px;
    width: 128px;
    background-position: 0px 0px;}
\end{lstlisting}
\end{block}
\begin{block}{Tableau des décalages}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
  var offsetList = new Array(0, -128, -256, -384, -512, -640, -768, -896)
\end{lstlisting}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Parcours de l'image}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
function cours(){
    frame++
    if (frame >= offsetList.length){
      frame = 0
    }
    offset = offsetList[frame] + "px 0px"
    contenant.style.backgroundPosition = offset
  }
\end{lstlisting}
\end{block}
\end{column}
\end{columns}
\begin{center}
\href{run:Javascript/AnimationJavascript3.html}{\beamerbutton{Résultat}}

\href{run:Javascript/AnimationJavascript3.txt}{\beamerbutton{Code}}
\end{center}
\end{frame}

\begin{frame}[containsverbatim]{Animation javascript 4 : le déplacement}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Gestion du clavier}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
document.onkeypress = keyListener
\end{lstlisting}
\end{block}
\begin{block}{Détection des touches}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
function keyListener(e){
    if (e.keyCode == 37){
      moveContenant(-10, 0)
    } // gauche
    if (e.keyCode == 38){
      moveContenant(0, -10)
    } // haut ... }
\end{lstlisting}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Déplacement de l'image}
\begin{lstlisting}[language=HTML,basicstyle=\tiny,breaklines=true]
function moveContenant(dx, dy){
    x = parseInt(contenant.style.left)
    y = parseInt(contenant.style.top)
    x += dx
    y += dy
    contenant.style.left = x + "px"
    contenant.style.top = y + "px"
  }
\end{lstlisting}
\end{block}
\end{column}
\end{columns}
\begin{center}
\href{run:Javascript/AnimationJavascript4.html}{\beamerbutton{Résultat}}

\href{run:Javascript/AnimationJavascript4.txt}{\beamerbutton{Code}}
\end{center}
\end{frame}

\begin{frame}[containsverbatim]{Animation javascript 5 : le tout}
\begin{columns}
\begin{column}{0.5\textwidth}
\begin{block}{Un joli résultat}
\href{run:Javascript/AnimationJavascript5.html}{\beamerbutton{Résultat}}
\end{block}
\end{column}
\begin{column}{0.5\textwidth}
\begin{block}{Un joli ``petit'' programme}
\href{run:Javascript/AnimationJavascript5.txt}{\beamerbutton{Code}}
\end{block}
\end{column}
\end{columns}
\end{frame}

\appendix
\section*{Références}
\begin{frame}[allowframebreaks]{Crédits photographiques}\label{notes}
\tiny{L'ensemble des illustrations utilisées dans cette présentation sont publiées sur le net soit sous licence GFDL, soit dans le domaine publique. Ci-dessous se trouvent les liens permettant de vérifier les licences. Ils donnent aussi accès aux auteurs que je remercie tout particulièrement pour leur travail sans lequel cette présentation n'aurait pas pu exister.}

\medskip
\theendnotes
\end{frame}

\end{document}
