Forum Casio - Autres questions


Index du Forum » Autres questions » Afficher des images dans un Add-in
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Afficher des images dans un Add-in

Posté le 17/03/2019 08:41

Bonjour a tous, selon le conseil de Hackcell je crée un topic pour une nouvelle petite question. En ce moment je programme en C et je fais quelques petits programmes inutiles avec le SDK pour m'entraîner à l'utiliser.. bref je m'égare,voici donc ma question: est-t-il possible d'afficher une image sur la calto dans un Add-in comme on le fait en Basic ? Et bien évidemment si oui, comment ?


Pages : 1, 2Suivante
LephenixnoirEn ligneAdministrateurPoints: 15042 Défis: 136 Message

Citer : Posté le 17/03/2019 09:08 | #


Oui, avec MonochromeLib si tu débutes. As-tu déjà utilisé ML ?
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 09:21 | #


Oui monsieur ! Et g de bonnes bases en C

Ajouté le 17/03/2019 à 11:27 :
J'ai lu la fonction mais je ne vois pas comment o tenir l'adresse mémoire d'un bmp que j'aurais importé.. ? ("... *bmp...").
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
HackcellHors ligneMembrePoints: 1086 Défis: 6 Message

Citer : Posté le 17/03/2019 11:38 | #


tu commence par declarer ta bitmap
bmp bitmap =[0xff, ...]

Et t'as son adresse comme ceci:
&bitmap

I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 11:43 | #


Oui ça je le sais (les pointeurs j'ai bien compris comment ils fonctionnent ). Ma question c'est comment passer de l'image .bmp à l'adresse dans le programme ?
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
HackcellHors ligneMembrePoints: 1086 Défis: 6 Message

Citer : Posté le 17/03/2019 12:10 | #


Peux-tu faire l'effort de lire la doc que tu as reçu en même temps que la bibliothéque ?

C'est pas que je veux pas t'expliquer, mais ce sera infiniment plus claire je pense

I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 12:44 | #


Je l'ai lue la doc, bien avant d'en parler sur PC, j'éssaye de passer une image au format bmp monochrome avec paint mais je crois que ce n'est pas possible..
La fonction que j'utilise est
void ML_bmp_and(const unsigned char *bmp, int x, int y, int width, int height);

Mais je ne vois pas comment obtenir l'adresse d'une image que j'importe (ici crée avec paint) pur la mettre en premier argument..
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
HackcellHors ligneMembrePoints: 1086 Défis: 6 Message

Citer : Posté le 17/03/2019 13:24 | #


Pas en entier alors, il y a une section dédiée pour ce que tu cherche a faire
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 13:27 | #


Oui je vais essayer d'utiliser le logiciel en ligne de PC pour créer mon bmp monochrome
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
HackcellHors ligneMembrePoints: 1086 Défis: 6 Message

Citer : Posté le 17/03/2019 13:30 | # | Fichier joint


Tu lis bien ce document là ? (repasse le en html)
I usually spend meow time cosplaying as a diligent student...
So it can get pretty stressful.
That's exactly why PC is such a happy place for meow to be ⭐
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 14:45 | #


Oui oui
Je suis quand même un peu pommé là, je ne trouve pas la solution pour convertir mon image en sprite..
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
Shadow15510Hors ligneAdministrateurPoints: 3593 Défis: 15 Message

Citer : Posté le 17/03/2019 15:40 | #


Alors !
Tu as ton image monochrome en *.png et tu veux que ton programme puisse la lire ? C'est ça ?
La fonction de monochromeLib fonctionne comme ça :
ML_bmp_or(nomDuSprite, x, y, largeur, hauteur);
Je suppose que ce qui pose problème c'est le nom... Le nom que tu dois renseigner c'est le nom du tableau qui contient l'image. En fait, toutes les images peuvent être associées à des tableaux. Le C est un langage super, tu peux donner des noms à tes tableaux (ça tu le sais déjà j'ai cru comprendre ) Le truc cool c'est que ton image en *.png elle a nom aussi et ça peut être le même C'est Lephe qui na dit que ça voulait rien dire...
Là le problème c'est comment on fait pour avoir le tableau tout beau juste avec l'image en *.png ? Et bien il y a un outil codé juste pour cela par Ninestars ! Tu met le logiciel dans le même dossier que tes images en *.png, tu lances le programme et pouf !... Tu te retrouve avc des *.txt qui contiennent les tableaux de tes images. Le petit plus c'est que les nom ne changent pas
Par la suite tu peux faire un fichier *.c et son header qui ne contiennent que des sprites

J'arrête la théorie : le logiciel est téléchargeable ici je sais que le site à pas l'air safe mais c'est bon !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   98%
LephenixnoirEn ligneAdministrateurPoints: 15042 Défis: 136 Message

Citer : Posté le 17/03/2019 15:44 | #


Shadow15510 a écrit :
Je suppose que ce qui pose problème c'est le nom... Le nom que tu dois renseigner c'est le nom du tableau qui contient l'image. En fait, toutes les images peuvent être associées à des tableaux. Le C est un langage super, tu peux donner des noms à tes tableaux (ça tu le sais déjà j'ai cru comprendre ) Le truc cool c'est que ton image en *.png elle a nom aussi et ça peut être le même

Oouh, c'est limite entre l'imprécis et l'inexact tout ça.

Pour ceux qui veulent savoir comment ça marche en termes de langage C, il faut savoir que ça n'a rien à voir avec les tableaux.

Le principe c'est d'avoir les données du bitmap en mémoire et un pointeur sur ces données. Une façon facile d'avoir les données est de définir un tableau, mais c'est moche. Convertir directement l'image en fichier objet est un tantinet plus élégant. Pour le pointeur, ce n'est pas difficile : lorsque les données sont placées en mémoire un symbole (un nom) est défini pour s'y référer ; ce symbole est un pointeur vers les données.
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 15:47 | #


@Lephenixnoir: Ok mais comment tu comptes convertir mon image bitmap en fichier .obj ? Sinon une fois que ça c'est fait, il ne me reste plus qu'à mettre en premier argument de la fonction le pointeur suivant: "&[nomDeMonFichier.obj]" ?
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 15042 Défis: 136 Message

Citer : Posté le 17/03/2019 15:53 | #


Dans le SDK avec MonochromeLib il n'y a pas trop moyen d'utiliser la méthode des fichiers objets. C'est plus pour GCC (avec fxlib + MonochromeLib ou avec gint, peu importe).

Pour toi, je conseille d'utiliser le Sprite Coder ou l'outil de Ninestars qui va générer un bout de code C qui définit un tableau avec les données dedans. Le nom du tableau sera, comme pour tous les tableaux, un pointeur vers les contenus, tu n'auras qu'à faire ML_bmp_or(mon_tableau, ...).

(Pour des raisons que je ne veux pas détailler, pour un tableau mon_tableau et &mon_tableau sont la même valeur.)
Shadow15510Hors ligneAdministrateurPoints: 3593 Défis: 15 Message

Citer : Posté le 17/03/2019 15:54 | #


Ah ! j'ai pas dis que des conneries !!

"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Moral
   98%
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 17/03/2019 16:11 | #


Merci je pensais le faire comme ça de toute façon.. le truc c que je ne parviens pas à utiliser le Sprite Coder de Smashmaster, il me dit qu'il y a trop d'erreurs et que l'extension est mauvaise (j'ai testé en .jpg, .png, .bmp) ?
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 15042 Défis: 136 Message

Citer : Posté le 17/03/2019 17:33 | #


En principe il veut du PNG, mais il est buggé depuis un certain temps, on ne sait pas trop pourquoi. C'est ça qui a poussé 9* à écrire son propre outil.
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 19/03/2019 07:30 | #


La liste dans laquelle est encodée l'image est remplie de valeurs hexadecimales mais est ce que l'on peut mettre des valeurs décimales ?
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
LephenixnoirEn ligneAdministrateurPoints: 15042 Défis: 136 Message

Citer : Posté le 19/03/2019 07:47 | #


Oui. Le tout c'est que la valeur numérique reste identique. Une fois compilé, la différence n'existera plus.

Cela dit si tu encodes tes sprites à la main c'est un problème...
DisperseurHors ligneMembrePoints: 1473 Défis: 0 Message

Citer : Posté le 19/03/2019 08:00 | #


Nope j'ai code un petit programme en Basic qui peut le faire mais avec des sprites de moins de 63*63 vu qu'au delà la précision de la calto abîme le sprite.

Ajouté le 19/03/2019 à 08:05 :
A partir d'images que je peut faire avec photocasio.

Ajouté le 19/03/2019 à 12:03 :
Je crois qu'il serait bien d'ajouter au site un Sprite Coder fonctionnel, ça serait d'une grande utilité à tous..

Ajouté le 19/03/2019 à 13:02 :
J'ai réussit à créer mon sprite avec le logiciel de 9*. Le sprite est déclaré comme ceci:
const unsigned char logocasio[]={0x0012, 0x0000, ...};

J'utilise la fonction:
ML_BMP_AND(&logocasio, 1, 1, 127, 63);

Mais rien ne s'affiche.. ?
Planetarium

√(2+2-2+2-2+2+2-2-2-2) = 0
Pages : 1, 2Suivante

Planète Casio v42 © créé par Neuronix et Muelsaco 2004 - 2019 | Il y a 29 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements

Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd