DECALER L'ENCODAGE D'UN BMP

shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014 - 7 juin 2005 à 09:45
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009 - 8 juin 2005 à 18:58
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/31877-decaler-l-encodage-d-un-bmp

cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
8 juin 2005 à 18:58
Salut !

Ca me rappelle mon TPE de l'année denrière sur la compression des images numériques, j'avais justement fais un programme (en VB) qui permettait de lire (presque) tous les formats BMP (8, 16, 24 bits, N&B, RLE ...) et de les enregistrer dans ces formats, enfin il y a pleins d'application facile à réaliser avec le BMP !!!

@+ Neria
skone007 Messages postés 166 Date d'inscription mercredi 24 avril 2002 Statut Membre Dernière intervention 23 juin 2009
7 juin 2005 à 16:45
shenron666 >>= Pour la reference ouaih. Mais pour le s c'est une valeur par defaut si y a rien de definie ca prenderas la valeur 1 mais rien n'interdis au programmeur de mettre un 0.

neria >>= Ca a pas vraiment la pretention je sais pas ta deja coder un truc vraiment utile et utiliser par tous maintenant et reconnu comme une reference ? Non plus serieusement c'est juste pour un TPE sur le cryptage lol donc voilà on permute les bits dans un octets...

Ca peut pas couper une image au passage ;) parce que c'est le rouge le vert et le bleu qu'on permute un a un ...
hackademius Messages postés 172 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 24 février 2008
7 juin 2005 à 16:22
ou alors a brouiller la photo pour que l'on ne la reconnaisse plus ? peut etre
hackademius Messages postés 172 Date d'inscription mercredi 29 janvier 2003 Statut Membre Dernière intervention 24 février 2008
7 juin 2005 à 16:20
oaui , bonne question , ca sert a quoi ? de decaler les bits ? ca coupe en 2 la photo et met la partie de droite a gauche ? ou koi ?
cs_neria Messages postés 319 Date d'inscription vendredi 21 février 2003 Statut Membre Dernière intervention 16 février 2009
7 juin 2005 à 14:41
Une question : ça sert à quoi ???
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
7 juin 2005 à 09:50
j'oublie un truc, les décalages de bits négatifs c'est pas terrible, k devrait plutot être unsigned je pense
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
7 juin 2005 à 09:45
Amusant comme source :-)
par contre il y a kkes problèmes dans Decal_bit.cpp :
CDecal_bit::dbit :
if(s = 1) // toujours vrai, c'est pas un test ^__^
faute de frappe ?

paramètre (unsigned char& c...
tu passes une référence, donc si on modifie c, on modifie la source, tu devrais sois mettre (const unsigned char& c...
sois ne pas retourner de valeur et modifier c

en fait tu fais de la rotation de bits sur des octets
si je puis me permettre, tu aurais pu faire une seule fonction pour la rotation :

// Decalage en fonction de s (s = 1 a droite sinon a gauche)
unsigned char CDecal_bit::dbit(const unsigned char &c, bool s, int k)
{
k %= 8; // k doit être compris entre 0 et 7 inclus (me suis pas trompé là ;p)
if(s 0) // rotation à gauche rotation à droite de 8 - k
k = 8 - k;
return dbitd(c, k);
}

// Decalage bit droite
unsigned char CDecal_bit::dbitd(const unsigned char &c, int k = 1)
{
return (c >> k) | (c << (8 - k));
}
Rejoignez-nous