5Fermer7
SpipuLe 11/07/2007 à 16:44
sinon, si tu n'as que 2 niveaux (blanc et noir => 0 et 1), voici une possibilité de format :

exemple pour l'image suivante :

1000001
0100010
0011100
0010100
0011100
0100010
1000001

l'image est constitué de
1x1, 5x0, 1x1, 1x0, 1x1, 3x0, 1x1, 3x0, 3x1, 4x0, 1x1, 1x0, 1x1, 4x0, 3x1, 3x0, 1x1, 3x0, 1x1, 1x0, 1x1, 5x0, 1x1


il suffit alors d'enregistrer la longueur de chaque suite de 0 et de 1, Si l'image commence par un 0, mettre 0 comme premiere longueur, et les dimensions de l'image (ici 9x9)

=> 9|9|0|1|5|1|1|1|3|1|3|3|4|1|1|1|4|3|3|1|3|1|1|1|5|1|

je conseil d'enregistrer les dimensions sur 2 octets

si un nombre dépasse 255, le mettre sur 2 octets : 264| => 255|9|
si un nombre est égal à 255, mettre 255|0| pour qu'il n'y ai pas de confusion.

petit calcul de place :

mon image : 9x9 pixels

avec ton ancienne methode texte : 81 charactères plus 2 pour les dimensions => 83 octets
avec la methode binaire du poste ./2 => 11 charactères plus 2 pour les dimensions => 13 octets
avec ma methode => 26 octets avec mon exemple, mais suivant les images, tu peux aller de 3 octets à 83 octets en fonction de la complexité de ton image

voila


si c'est pas clair, ben.... désolé happy