PDF - Js Viewer
PDF - Js Viewer
PDF - Js Viewer
8 novembre 2023
Contexte de l’Option Complémentaire
OS : operating system
Ce qui fait fonctionner l’ordinateur ; interface entre le matériel et l’utilisateur.
Systèmes d’exploitations
OS : operating system
Ce qui fait fonctionner l’ordinateur ; interface entre le matériel et l’utilisateur.
Principaux OS
Mac OS©
Originalité : Concepteur d’ordinateur
(hardware) et de système d’exploitation
(software).
Depuis Mac OS X, système de type UNIX
très proche de Linux. Seule l’interface
graphique est propre à Macintosh.
Systèmes d’exploitation propriétaires
Mac OS©
Originalité : Concepteur d’ordinateur
Windows©
(hardware) et de système d’exploitation
(software). Système pré-installé sur la
quasi-totalité des machines disponibles
Depuis Mac OS X, système de type UNIX en magasin.
très proche de Linux. Seule l’interface
graphique est propre à Macintosh.
Licences
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.
Licences
Les plus connues sont la GPL (licence publique générale) et les Creatives
Commons.
Free Software Foundation (FSF), projet GNU, licences libres
Quatre libertés
Liberté 0 La liberté d’exécuter le programme - pour tous les usages
Free Software Foundation (FSF), projet GNU, licences libres
Quatre libertés
Liberté 0 La liberté d’exécuter le programme - pour tous les usages
Liberté 1 La liberté d’étudier le fonctionnement du programme - ce qui
suppose l’accès au code source
Free Software Foundation (FSF), projet GNU, licences libres
Quatre libertés
Liberté 0 La liberté d’exécuter le programme - pour tous les usages
Liberté 1 La liberté d’étudier le fonctionnement du programme - ce qui
suppose l’accès au code source
Liberté 2 La liberté de redistribuer des copies - ce qui comprend la liberté de
vendre des copies
Free Software Foundation (FSF), projet GNU, licences libres
Quatre libertés
Liberté 0 La liberté d’exécuter le programme - pour tous les usages
Liberté 1 La liberté d’étudier le fonctionnement du programme - ce qui
suppose l’accès au code source
Liberté 2 La liberté de redistribuer des copies - ce qui comprend la liberté de
vendre des copies
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.
Libertés
Quelques exemples
Debian Système totalement libre : refus d’intégrer du code source sous
licence non libre.
Ubuntu Système dérivé de Debian, mais se permettant si nécessaire
d’intégrer du code non libre.
LinuxMint Dérivé de Ubuntu.
Redhat Système orienté entreprises, payant.
Fedora Basée sur Redhat, pour le particulier.
Manjaro Basée sur Fedora, fonctionne en « rolling release », c’est à dire que la
distribution est constamment mise à niveau.
OpenSuSe D’origine allemande.
Code Binaire - Code Source
Binaire
Un ordinateur ne comprend que les
zéros et uns dont est composé un
chier binaire.
0100010 1001010 01010001
10010001010000101
Code Binaire - Code Source
Source
Binaire
Un programme s’écrit dans un
Un ordinateur ne comprend que les
langage compréhensible par
zéros et uns dont est composé un
l’homme et est traduit par un
chier binaire.
compilateur en binaire.
0100010 1001010 01010001 i f ( argent = bonheur )
10010001010000101 then (1/3 p o p u l a t i o n = t r i s t e )
Logiciels
Quelques exemples
Décimal
chires : 0, 1, 2, . . ., 9
nombres : 536, 2378, 24, . . .
Comment l’ordinateur comprend-il les nombres ?
Décimal Binaire
chires : 0, 1, 2, . . ., 9 chires : 0 et 1 (bits)
nombres : 536, 2378, 24, . . . nombres : 11011, 10, 1000, . . .
Comment l’ordinateur comprend-il les nombres ?
Décimal Binaire
chires : 0, 1, 2, . . ., 9 chires : 0 et 1 (bits)
nombres : 536, 2378, 24, . . . nombres : 11011, 10, 1000, . . .
Exercice :
« sur 1 bits »
On a 2 nombres possibles :
0 et 1
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
On a 2 nombres possibles :
0 et 1
« sur 2 bits »
On a 4 nombres possibles :
00, 01, 10 et 11
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
« sur 3 bits »
On a 2 nombres possibles :
On a 8 nombres possibles :
0 et 1
000, 001, 010, 011, 100, 101, 110 et
« sur 2 bits » 111
On a 4 nombres possibles :
00, 01, 10 et 11
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
« sur 3 bits »
On a 2 nombres possibles :
On a 8 nombres possibles :
0 et 1
000, 001, 010, 011, 100, 101, 110 et
« sur 2 bits » 111
On a 4 nombres possibles : « sur 4 bits ? »
00, 01, 10 et 11
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
« sur 3 bits »
On a 2 nombres possibles :
On a 8 nombres possibles :
0 et 1
000, 001, 010, 011, 100, 101, 110 et
« sur 2 bits » 111
On a 4 nombres possibles : « sur 4 bits ? »
On a 16 nombres possibles...
00, 01, 10 et 11
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
« sur 3 bits »
On a 2 nombres possibles :
On a 8 nombres possibles :
0 et 1
000, 001, 010, 011, 100, 101, 110 et
« sur 2 bits » 111
On a 4 nombres possibles : « sur 4 bits ? »
On a 16 nombres possibles...
00, 01, 10 et 11
« sur n bits ? »
Longueur d’un nombre binaire
Exercice :
« sur 1 bits »
« sur 3 bits »
On a 2 nombres possibles :
On a 8 nombres possibles :
0 et 1
000, 001, 010, 011, 100, 101, 110 et
« sur 2 bits » 111
On a 4 nombres possibles : « sur 4 bits ? »
On a 16 nombres possibles...
00, 01, 10 et 11
« sur n bits ? »
On a 2n nombres possibles
Comment l’ordinateur comprend-il les nombres ?
Décimal
kilo : nombre de possibilités de
réaliser un nombre avec 3
chires.
Et le poids de tout ça ?
Décimal
kilo : nombre de possibilités de
réaliser un nombre avec 3
chires.
possibilités : 103 = 1000
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000 possibilités : 210 = 1024
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000 possibilités : 210 = 1024
En résumé
Un kilo-octet est noté Kio et correspond à 1024 octets.
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000 possibilités : 210 = 1024
En résumé
Un kilo-octet est noté Kio et correspond à 1024 octets.
Un mega-octet est noté Mio et correspond à 1024 Kio.
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000 possibilités : 210 = 1024
En résumé
Un kilo-octet est noté Kio et correspond à 1024 octets.
Un mega-octet est noté Mio et correspond à 1024 Kio.
Un giga-octet est noté Gio et correspond à 1024 Mio.
Et le poids de tout ça ?
Décimal Binaire
kilo : nombre de possibilités de kibi : (kilo-binaire) nombre de
réaliser un nombre avec 3 possibilités de réaliser un
chires. nombre avec 10 bits.
possibilités : 103 = 1000 possibilités : 210 = 1024
En résumé
Un kilo-octet est noté Kio et correspond à 1024 octets.
Un mega-octet est noté Mio et correspond à 1024 Kio.
Un giga-octet est noté Gio et correspond à 1024 Mio.
Un téra-octet est noté Tio et correspond à 1024 Gio.
···
Et le poids de tout ça ?
Exercice :
Avec un processeur 32 bits, combien de nombres puis-je représenter ? Et avec 64
bits ?
Et le poids de tout ça ?
Exercice :
Avec un processeur 32 bits, combien de nombres puis-je représenter ? Et avec 64
bits ?
Exercice :
Avec un processeur 32 bits, combien de nombres puis-je représenter ? Et avec 64
bits ?
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Et le poids de tout ça ?
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Chaque nombre est codé sur 32 bits, donc 4294967296 · 32 = 1, 37 · 1011 bits
Et le poids de tout ça ?
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Chaque nombre est codé sur 32 bits, donc 4294967296 · 32 = 1, 37 · 1011 bits
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Chaque nombre est codé sur 32 bits, donc 4294967296 · 32 = 1, 37 · 1011 bits
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Chaque nombre est codé sur 32 bits, donc 4294967296 · 32 = 1, 37 · 1011 bits
Exercice :
Si j’écris sur une clé usb tous ces nombres (en 32 bits), quelle sera la taille du
chier obtenu en Gio ?
Chaque nombre est codé sur 32 bits, donc 4294967296 · 32 = 1, 37 · 1011 bits
Exercice :
Voici à quoi ressemblerait ce chier
00000000000000000000000000000000
00000000000000000000000000000001
00000000000000000000000000000010
00000000000000000000000000000011
00000000000000000000000000000100
···
11111111111111111111111111111110
11111111111111111111111111111111
Et le poids de tout ça ?
Exercices :
Sur un processeur 16 bits, combien de nombres entiers non signés peut on
représenter ?
(on peut manipuler des « mots » de 16 bits, exemple 1110110000110110)
Et le poids de tout ça ?
Exercices :
Sur un processeur 16 bits, combien de nombres entiers non signés peut on
représenter ?
(on peut manipuler des « mots » de 16 bits, exemple 1110110000110110)
On a 216 = 65′ 536 possibilités, soit autant de nombres.
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)
Et le poids de tout ça ?
Exercices :
Sur un processeur 16 bits, combien de nombres entiers non signés peut on
représenter ?
(on peut manipuler des « mots » de 16 bits, exemple 1110110000110110)
On a 216 = 65′ 536 possibilités, soit autant de nombres.
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)
On a un bit de signe (0 ou 1) et 15 bits pour le nombre, soit 215 = 32′ 768
possibilités. On peut donc représenter des nombres de -32’768 à 32’767 (à cause
du zéro).
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 =
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 118
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 118
1000000=
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 118
1000000=1 · 26 + 0 · 25 + 0 · 24 + 0 · 23 + 0 · 22 + 0 · 21 + 0 · 20
Représentation d’un nombre
Exercice :
Convertir en décimal
1110110=1 · 26 + 1 · 25 + 1 · 24 + 0 · 23 + 1 · 22 + 1 · 21 + 0 · 20 = 118
1000000=1 · 26 + 0 · 25 + 0 · 24 + 0 · 23 + 0 · 22 + 0 · 21 + 0 · 20 = 64
Conversion décimal-binaire
En décimal
Nombre = Signe · Mantisse · BaseExposant
Représentation d’un nombre en virgule ottante
En décimal
Nombre = Signe · Mantisse · BaseExposant
En décimal
Nombre = Signe · Mantisse · BaseExposant
En décimal
Nombre = Signe · Mantisse · BaseExposant
Exercice :
Écrire le nombre −0, 000623 en notation décimale en virgule ottante
Représentation d’un nombre en virgule ottante
En décimal
Nombre = Signe · Mantisse · BaseExposant
Exercice :
Écrire le nombre −0, 000623 en notation décimale en virgule ottante
Réponse : −0, 000623 = −6, 23 · 10−4
Représentation d’un nombre en virgule ottante
En binaire
Nombre = Signe · Mantisse · BaseExposant
Représentation d’un nombre en virgule ottante
En binaire
Nombre = Signe · Mantisse · BaseExposant
Exemple : 10000011001010000000000000000000
Exemple : 10000011001010000000000000000000
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6.
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6. On biaise de 127 ! ⇒ 6 − 127 = −121.
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6. On biaise de 127 ! ⇒ 6 − 127 = −121.
Mantisse : 1 + 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 =
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6. On biaise de 127 ! ⇒ 6 − 127 = −121.
Mantisse : 1 + 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 = 1, 3125.
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6. On biaise de 127 ! ⇒ 6 − 127 = −121.
Mantisse : 1 + 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 = 1, 3125.
Base : ici, la base est 2.
Conclusion : Le nombre est −1, 3125 · 2−121
Représentation d’un nombre en virgule ottante
Exemple : 10000011001010000000000000000000
Signe : 1 ⇒ négatif
Exposant : 0 · 20 + 1 · 21 + 1 · 22 = 6. On biaise de 127 ! ⇒ 6 − 127 = −121.
Mantisse : 1 + 0 · 2−1 + 1 · 2−2 + 0 · 2−3 + 1 · 2−4 = 1, 3125.
Base : ici, la base est 2.
Conclusion : Le nombre est −1, 3125 · 2−121 = −4, 937 · 10−37
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Donc le nombre est 1, 375 · 21 = 2, 75
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Donc le nombre est 1, 375 · 21 = 2, 75
Exercice :
Convertir le nombre binaire suivant en décimal
10101000001100000000000000000000
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Donc le nombre est 1, 375 · 21 = 2, 75
Exercice :
Convertir le nombre binaire suivant en décimal
10101000001100000000000000000000
1 | 01010000 | 01010000000000000000000
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Donc le nombre est 1, 375 · 21 = 2, 75
Exercice :
Convertir le nombre binaire suivant en décimal
10101000001100000000000000000000
1 | 01010000 | 01010000000000000000000
− | 26 + 24 = 80 ⇒ 80 − 127 = −47 | 1 + 1 · 2−2 + 1 · 2−4 = 1, 3125
Représentation d’un nombre en virgule ottante
Exercice :
Convertir le nombre binaire suivant en décimal
01000000001100000000000000000000
0 | 10000000 | 01100000000000000000000
+ | 27 = 128 ⇒ 128 − 127 = 1 | 1 + 1 · 2−2 + 1 · 2−3 = 1, 375
Donc le nombre est 1, 375 · 21 = 2, 75
Exercice :
Convertir le nombre binaire suivant en décimal
10101000001100000000000000000000
1 | 01010000 | 01010000000000000000000
− | 26 + 24 = 80 ⇒ 80 − 127 = −47 | 1 + 1 · 2−2 + 1 · 2−4 = 1, 3125
Donc le nombre est 1, 3125 · 2−47 = 9, 326 · 10−15
Le plus grand nombre
7
Pour l’exposant, codé sur 8 bits, le plus grand est 2i = 255 . Pour coder les
0
négatifs on biaise de 127. Donc le nombre maximum codé pour l’exposant est
255 − 127 = 128
Le plus grand nombre
7
Pour l’exposant, codé sur 8 bits, le plus grand est 2i = 255 . Pour coder les
0
négatifs on biaise de 127. Donc le nombre maximum codé pour l’exposant est
255 − 127 = 128
Au total, on a donc la plage maximale est de 1, 9999 · 2128 = 6, 8 · 1038 , à
savoir les nombres de −3, 4 · 10−38 à +3, 4 · 10−38
Et pour calculer ?
Pour l’anecdote...
0+0=0
Et pour calculer ?
Pour l’anecdote...
0+0=0
0+1=1
Et pour calculer ?
Pour l’anecdote...
0+0=0
0+1=1
1+0=1
Et pour calculer ?
Pour l’anecdote...
0+0=0
0+1=1
1+0=1
1+1=10
Et pour calculer ?
Pour l’anecdote...
0+0=0
0+1=1
1+0=1
1+1=10
1+1+1=11
Et pour calculer ?
Pour l’anecdote...
0+0=0
0+1=1
1+0=1
1+1=10
1+1+1=11
···
Et pour calculer ?
⇒
Comment capter une image ?
première idée : « regarder au travers de la passoire... »
Capteur CCD
Capter une image en niveaux de gris
00 blanc
Capter une image en niveaux de gris
00 blanc
01 gris clair
Capter une image en niveaux de gris
De l’orignial à la numérisation
Original
Capter une image en niveaux de gris
De l’orignial à la numérisation
Original Analyse
Capter une image en niveaux de gris
De l’orignial à la numérisation
De l’orignial à la numérisation
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.
Résolution d’une image
Unités de la résolution : dpi (dot per inch) ou ppp (point par pouce).
Exemples typiques : écran 75-100 dpi, photocopieuse 360 dpi, imprimante 700
dpi, scanner 2000 dpi.
Image en couleur : codage RVB.
0000FF, pour le bleu et 00FF00 pour le vert, car le codage est RVB.
Et les couleurs ?
chier
36 00 00 00 Position (oset) de l’image 36 = 54 octets
28 00 00 00 Taille de l’entête du chier 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
Entêtes image
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
00 00 B=255,V=0,R=0 : bleu
B=255, V=255, R=255 : blanc
00 00 Pour que la ligne ait un nb d’octets multiple de 4
00 00 B=0, V=0, R=255 : rouge
Image
00 00 B=0, V=255, R=0 : vert
00 00 Pour que la ligne ait un nb d’octets multiple de 4
Exercice : ceci est une image . . .
Type d’image ?
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 Nb d’octets ?
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 Oset ?
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
Largeur ?
ff ff ff 00 00 00 ff ff ff 00 00 ff ff 00 00 ff Hauteur ?
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 Nb octets/pixel ?
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 Taille image ?
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
Que représente-elle ?
ff ff ff ff ff ff ff ff ff 00 00 00 00 00 Taille (en ko) ?
Exercice : ceci est une image . . .
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 Ce chier en 2 couleurs
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 vraies a été corrompu.
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 Que représente-t-il ?
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff Pouvez-vous le corriger ?
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 Quel est le poids de cette
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff image en Mio ?
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
Le chier une fois corrigé.
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 Nombre total d’octet (deux chires hexadécimaux) :
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 14 · 16 − 2 = 222D = de H
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 Nombre de bits par pixel en vraie couleurs :
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 24D = 18H
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 Taille image 7 pixel sur 7 pixel (3 octets par pixel avec
un nombre d’octets multiple de 4 par ligne ⇒ 3 octets
suppl. par ligne) :
7 · 7 + 3 · 7 = 168D = a8H
Principe mathématique
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 (teinte), S (saturation) et V (valeur)
sont données par l’ensemble des relations ci-dessous où T ∈ [0, 360].
0 si M=m
V−B
60 · + 0◦ si M=R et V ⩾ B
M−m
V−B
+ 360◦ si M = R et V < B
60 · M−m
B −R
+ 120◦ si M = V
60 · M−m
T=
R−V
+ 240◦ si M=B
60 · M−m
0 si M = 0
S=
(1 − m
M ) · 100 sinon
M
V= · 100
255
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239)
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200)
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
(255,231,176)
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
(255,231,176) ⇒ (42,31,100) orange peu saturé et très valorisé llllllllllllllllll
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
(255,231,176) ⇒ (42,31,100) orange peu saturé et très valorisé llllllllllllllllll
(13,53,30)
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
(255,231,176) ⇒ (42,31,100) orange peu saturé et très valorisé llllllllllllllllll
(13,53,30) ⇒ (146,76,21) vert très saturé et très peu valorisé llllllllllllllllll
Exercices
Les couleurs suivantes sont données selon le modèle RVB. Trouvez les valeurs
selon le modèle TSV, puis à l’aide de gimp, décrivez la couleur
(34,56,239) ⇒ (234,86,94) bleu très saturé et valorisé llllllllllllllllll
(22,240,200) ⇒ (169,91,94) bleu-vert très saturé et valorisé llllllllllllllllll
(255,231,176) ⇒ (42,31,100) orange peu saturé et très valorisé llllllllllllllllll
(13,53,30) ⇒ (146,76,21) vert très saturé et très peu valorisé llllllllllllllllll
Compression RLE : non destructive
Idée : coder les lettres fréquentes par des bits de poids faibles.
Compression de Humann : non destructive
Idée : coder les lettres fréquentes par des bits de poids faibles.
Une chaine comprenant cinq lettres
ssionnansnni ← oaisn
Compression de Humann : non destructive
Idée : coder les lettres fréquentes par des bits de poids faibles.
Une chaine comprenant cinq lettres
ssionnansnni ← oaisn
Pour coder cinq lettres, il faut au minimum trois bits : 23 = 8.
Un codage peu intelligent
o → 000 ; a → 001 ; i → 010 ; s → 011 ; n → 100
Compression de Humann : non destructive
Idée : coder les lettres fréquentes par des bits de poids faibles.
Une chaine comprenant cinq lettres
ssionnansnni ← oaisn
Pour coder cinq lettres, il faut au minimum trois bits : 23 = 8.
Un codage peu intelligent
o → 000 ; a → 001 ; i → 010 ; s → 011 ; n → 100
Le résultat est une chaîne de 12 · 3 = 36 bits pour douze caractères.
Compression de Humann : non destructive
Idée : coder les lettres fréquentes par des bits de poids faibles.
Une chaine comprenant cinq lettres
ssionnansnni ← oaisn
Pour coder cinq lettres, il faut au minimum trois bits : 23 = 8.
Un codage peu intelligent
o → 000 ; a → 001 ; i → 010 ; s → 011 ; n → 100
Le résultat est une chaîne de 12 · 3 = 36 bits pour douze caractères.
La chaine encodée
011|011|010|000|100|100|001|100|011|100|100|010
Méthode : éléments de plus basse fréquence 2 à 2.
12×
< c
5×
n ; 7× b
3×
s < 4× b
2×
i < 2×a
1× 1×
a o
Méthode : 1 sur bit fort pour éléments basse fréquence.
12×
0 1
y &
(0) n 7×
0 1
y '
(10) s 4×
0 1
w %
(110) i 2×
0 1
y %
(1110) a o (1111)
Codage de Humann
Selon l’arbre de Humann, 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
Codage de Humann
ssionnansnni → 10|10|110|1111|0|0|1110|0|10|0|0|110
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 (il ne peut pas y avoir d’ambiguité).
Méthode : on lit simplement en suivant l’arbre.
12×
0 1
y &
(0) n 7×
0 1
y '
(10) s 4×
0 1
w %
(110) i 2×
0 1
y %
(1110) a o (1111)
Exercice sur la compression
Exercice
Déterminez le poids de l’image du double F précédemment présentée, mais codée
selon RLE puis selon Humann.
Compression RLE pour le double F
42 4d de 00 00 00 00 00 00 00 36 00 00 00 28 00
01 42 01 4d 01 de 07 00 01 36 03 00 01 28 03 00
00 00 07 00 00 00 07 00 00 00 01 00 18 00 00 00
01 07 03 00 01 07 03 00 01 01 01 00 01 18 05 00
00 00 a8 00 00 00 13 0b 00 00 13 0b 00 00 00 00
01 a8 03 00 01 13 01 0b 02 00 01 13 01 0b 0B 00
00 00 00 00 00 00 00 ff 00 00 87 00 ff ff ff ff
01 FF 02 00 01 87 01 00 0F FF 04 00 01 FF 02 00
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
01 87 01 00 0F FF 04 00 01 FF 02 00 01 87 02 00
00 00 87 00 ff ff ff ff ff ff ff ff ff ff ff ff
01 87 01 00 0C FF 04 00 01 FF 02 00 01 FF 02 00
ff ff ff 00 00 00 00 ff 00 00 87 00 00 87 00 ff
01 FF 02 00 01 FF 01 00 09 FF 04 00 01 FF 02 00
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
01 87 01 00 0F FF 04 00 01 FF 02 00 01 87 02 00
00 00 ff 00 00 ff 00 00 ff 00 ff ff ff ff ff ff
01 87 02 00 01 87 02 00 01 87 02 00 01 87 01 00
ff ff ff 00 00 00 00 ff 00 00 87 00 ff ff ff ff
03 FF 04 00 01 FF 02 00 01 FF 02 00 01 FF 02 00
ff ff ff ff ff ff ff ff ff ff ff 00 00 00 00 ff
01 FF 02 00 01 FF 02 00 01 FF 02 00 01 FF 04 00
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
42 4d de 00 00 00 00 00 00 00 36 00 00 00 28 00
Octets Fréquence
00 00 07 00 00 00 07 00 00 00 01 00 18 00 00 00 42, 4d, de, 36,
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 28, 01, 18, a8 1
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 07, 13, 0b 2
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 87 10
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 85
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 00 113
16 x 14 - 2 = 222 octets
14 symboles : 24 = 16 ⇒ 4 bits
Arbre de Humann
0
00 o 222×
1
0
%
o 109×
1
0
$
87 o 24×
1
0 *
0
6× o 14×
1
~ # 1
0
4× 0b 0
8×
1 1
~
13 07 0
4× r 0
+ 4×
1 1
t ) w (
0
2× 0
2× 0
2× 0
2×
1 1 1 1
~ # | ~ ~
a8 18 01 28 36 de 4d 42
Codage de Humann
Compression Humann :
222 − 51
Compression : c = · 100 = 77%
222
Principaux formats d’image
Pour le web.
Compressé en fonction de la qualité de l’image nale désirée (RLE, Humann
et transformée de fourrier).
Pas un format propriétaire mais plutôt une norme publique, même si certains
en revendiquent la paternité.
Utilisé communément par les appareils photographique numérique.
C’est LE format le plus utilisé aujourd’hui.
Principaux formats d’image
Le serveur
Il existe plusieurs versions de HTML qui ne sont pas compatibles avec tous les
navigateurs.
En 2014, la norme HTML5 devrait a été ofcialisée. C’est donc sur celle-ci qu’on
va se baser. Elle est compatible avec tous les navigateurs récents dans la plupart
des cas.
Structure de balisage
Hiérarchie
<balise1><balise2> texte </balise2></balise1>
Balisage
Feuille interne
Feuille externe
<head>
<s t y l e type= " t e x t / css "> <head>
p {
< l i n k r e l = " s t y l e s h e e t " type=" t e x t
c o l o r : red ;
} / css " href= " f e u i l l e . css " />
</ s t y l e> </head>
</head>
Feuilles de styles : CSS
Meilleure indentation :
Exemples : h1, h2 {
h1 {font-size :120 ;}
font-family : "sans serif" ;
p {font-family :"sans serif" ; color : red ;
font-size :90% ; color :red}
}
Feuilles de styles : sélecteurs
<h1>La </h1>
<em>deux chevaux, </em>
<p>sa puissance </p> Et d’autre encore . . . A découvrir.
<p>c’est la lenteur.</p>
h1, em, p {color :red}
Première idée :
Déplacement du gif animé en javascript
<img src = ’ tux . png ’ / >
f u n c t i o n deplace ( ) {
i d e n t i f i c a t i o n = document . getElementById ( ’ robot ’ )
position = parseInt ( i d e n t i f i c a t i o n . style . l e f t )
... avec un gif animé ... p o s i t i o n = p o s i t i o n + 10
i d e n t i f i c a t i o n . s t y l e . l e f t = p o s i t i o n + " px "
}
<img src = ’ robot . g i f ’ / >
Résultat
Code
Animation javascript 2 : tableau d’images
Résultat
Code
Animation javascript 3 : une seule image
Résultat
Code
Animation javascript 4 : le déplacement
Gestion du clavier
document . onkeypress = k e y L i s t e n e r
Déplacement de l’image
f u n c t i o n moveContenant ( dx , dy ) {
x = p a r s e I n t ( contenant . s t y l e . l e f t )
Détection des touches y = p a r s e I n t ( contenant . s t y l e . top )
x += dx
function keyListener ( e ) { y += dy
i f ( e . keyCode == 37) { contenant . s t y l e . l e f t = x + " px "
moveContenant ( −10 , 0 ) contenant . s t y l e . top = y + " px "
} // gauche }
i f ( e . keyCode == 38) {
moveContenant ( 0 , −10)
} // haut . . . }
Résultat
Code
Animation javascript 5 : le tout