Codage d'un petit smiley

Fermé
Needix59 Messages postés 424 Date d'inscription lundi 3 novembre 2014 Statut Membre Dernière intervention 8 mai 2020 - Modifié par Needix59 le 23/01/2017 à 19:38
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 - 25 janv. 2017 à 11:43
Bonjour/Bonsoir


Je suis étudiant en 1ère SEN, notre prof nous a fait recréer le curseur de la souris à partir d'une série de code sur un bloc note. Une fois la souris créer, il nous a demander de modifier certains codes afin de comprendre le fonctionnement de ce dernier par nous même, et ainsi, à partir de la, de créer une petit smiley à la place du curseur, je ne sait pas si j'ai bien expliqué alors je vous donnes les ressources que j'ai afin de faire mon travail.


Codage du curseur :
#define pointeur_width 11
#define pointeur_height 16
#define pointeur_x_hot 0
#define pointeur_y_hot 0
static unsigned char pointeur_bits[] = {
0x01, 0x00, 0x03, 0x00, 0x07, 0x00, 0x0f, 0x00, 0x1f, 0x00, 0x3f,
0x00, 0x7f, 0x00, 0xff, 0x00, 0xff, 0x01, 0xff, 0x03, 0xff, 0x07,
0x3f, 0x00, 0x33, 0x00, 0x61, 0x00, 0x60, 0x00, 0xc0, 0x00 };


Smiley à créer (12x12px) :



J'ai déjà trouvé qu'il fallait changer les valeurs de "define pointeur_width" & "define pointeur_height" afin des le mettre à 12 pour les faire correspondre à la taille d'image du smiley
Mais pour le reste, je suis totalement bloqué, et je n'ai rien trouvé sur internet.
Je voulais donc savoir si quelqu'un serait prêt à m'aider afin de réalisé ce smiley ! :s


Merci d'avance ! :-)



PS : Les couleurs noirs et blancs sont demandé

2 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
23 janv. 2017 à 21:09
bonsoir, si je comprends bien, ton prof t'a expliqué qu'un programme créait l'image du curseur en partant du codage du curseur.
As-tu compris le lien entre le code et le dessin obtenu?
Que sais-tu de ce programme?
0
Needix59 Messages postés 424 Date d'inscription lundi 3 novembre 2014 Statut Membre Dernière intervention 8 mai 2020 64
24 janv. 2017 à 22:11
Non, il nous a fait recopier le code du curseur sur un bloc note
Bloc note que nous avons ensuite dû enregistré avec l'extension ".xbm" afin d'obtenir l'image du curseur

Il nous a ensuite demander de comprendre la logique du codage du curseur afin de créer le smiley ci-dessus

Mais je n'arrive pas à comprendre comment le code fonctionne :/
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
24 janv. 2017 à 22:30
bonsoir, tout est clair, tu avais négligé de mentionner que cela utilisait le format xbm!
tu n'as pas écouté pendant le cours?
tu peux nous donner le dessin du curseur? cela t'aidera à comprendre le codage, et à résoudre l'exercice que tu dois résoudre.
0
Needix59 Messages postés 424 Date d'inscription lundi 3 novembre 2014 Statut Membre Dernière intervention 8 mai 2020 64
24 janv. 2017 à 22:51
Tout d'abord merci de vos réponses

Je n'ai malheureusement qu'un téléphone portable sous la main, je ne pourrais donc pas vous donner le dessin du curseur, mais pour l'obtenir il suffit de prendre le code ci-dessus et de le mettre sur le bloc note, puis de l'enregistrer en. xbm
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
25 janv. 2017 à 10:13
et la spécification du format xbm aussi peut aider :

https://en.wikipedia.org/wiki/X_BitMap#Format

En particulier, ce passage est très éclairant :

The image data consisted of a line of pixel values stored in a static array. Because a single bit represented each pixel (0 for white or 1 for black), each byte in the array contained the information for eight pixels, with the upper left pixel in the bitmap represented by the low bit of the first byte in the array. If the image width did not match a multiple of 8, the display mechanism ignored and discarded the extra bits in the last byte of each row.


Dal
0
[Dal] Messages postés 6174 Date d'inscription mercredi 15 septembre 2004 Statut Contributeur Dernière intervention 2 février 2024 1 083
Modifié par [Dal] le 25/01/2017 à 12:08
autres infos utiles :

on peut convertir des chaînes de caractères représentant des valeurs binaires en entiers avec strtol (ou manuellement)

avec gcc, on peut aussi inscrire directement des valeurs littérales binaires dans du code C avec la notation 0b (extension non standard de gcc, ce n'est donc pas du C standard)
0