= Quand? (ok, --[] )critor2000 wrote:Bientôt sur vos écrans.
Dessiner avec sa TI-nspire
Re: Dessiner avec sa TI-nspire
Oui, mais bon la méthode de Ciwtron est quand même vachement plus simple que de devoir faire un programme à chaque fois qu'on veut un image... Et puis c'est pas mal d'avoir un truc qui fonctionne aussi sans hack, de manière "officielle"
TabVar - Etude de fonctions sur Nspire!
-
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 207
- Joined: 26 Jan 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Polytechnique
Re: Dessiner avec sa TI-nspire
JayTe wrote:Oui, mais bon la méthode de Ciwtron est quand même vachement plus simple que de devoir faire un programme à chaque fois qu'on veut un image... Et puis c'est pas mal d'avoir un truc qui fonctionne aussi sans hack, de manière "officielle"
Le problème est que l'implémentation de la méthode de Ciwtron est buggée.
Et cela n'a jamais été corrigé depuis des mois...
-
critorAdmin
Niveau 19: CU (Créateur Universel)- Posts: 41980
- Images: 15866
- Joined: 25 Oct 2008, 00:00
- Location: Montpellier
- Gender:
- Calculator(s):→ MyCalcs profile
- YouTube: critor3000
- Twitter: critor2000
- GitHub: critor
Re: Dessiner avec sa TI-nspire
critor2000 wrote:Le problème est que l'implémentation de la méthode de Ciwtron est buggée.
Et cela n'a jamais été corrigé depuis des mois...
C'est vrai, même plus que vrai. J'ai encore reçu un MP me disant que ça ne marche pas et je me suis excusé en long et en large^^. Mais plus que d'être buggée, elle est surtout incompréhensible pour un utilisateur lambda.
Mais vu que j'avais adoré ce projet, je suis prêt à m'y remettre.
Donc Jayte, je veux bien ton convertisseur, comme ça on va éviter que les gens qui ne savent pas faire la différence entre un bitmap couleur et N/B se trompent (ben oui, je n'ai implémenté aucune vérification de l'image alors que c'est super simple à faire en plus).
Donc vu que je suis en plein bacs blancs, je vais m'y remettre la semaine prochaine, et vu que je part en vacances après, on verra.
PS: SFML est disponible en Basic? Sincèrement, ça m'étonnerais .
PPS: La condition pour que je le refasse bien mon programme est que l'OS 2.0 ne me Mic-étise pas ma nspire .
-
Ciwtron
Niveau 11: LV (Légende Vivante)- Posts: 1332
- Joined: 29 Nov 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1S
Re: Dessiner avec sa TI-nspire
Ciwtron wrote:PS: SFML est disponible en Basic? Sincèrement, ça m'étonnerais .
Content de te voir te lancer dans l'aventure à nouveau !
Sinon, SFML est disponible pour les langages suivants :
* C++
* C
* .Net (C#, VB.Net, C++/CLI, ...)
* Python
* D
* Ruby
Sublime Chevalier Elu des TI
Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!
Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
Venez visiter mon site sur les TI : Ti Softwares !!
Jetez un coup d'œil à mes programmes pour TI !!
Vous voulez faire des super programmes pour votre TI z80 ? Alors apprenez l'Axe Parser !!
-
jacques
Niveau 12: CP (Calculatrice sur Pattes)- Posts: 2057
- Images: 0
- Joined: 25 Aug 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: prépa PSI
Re: Dessiner avec sa TI-nspire
Perso j'utilise la SFML principalement en C++, mais elle est aussi dispo en C, Python, Ruby... après je sais pas dans quel langage tu avais commencé ton projet...
Code source du convertisseur (C++) :
Ce qui est pratique c'est que la partie gestion des images est entièrement gérée par la SFML, pas besoin de s'embêter avec ça; et ça marche quelque soit la taille/le format des images
Voila, à partir de ça il faudrait que tu modifies les outputs pour que ça corresponde à la syntaxe d'un fichier xml que tu pourras mettre dans le tns, si tu as besoin de plus de détails demande-moi
PS: pour compiler ça il faut linker avec sfml-graphics-s sfml-window-s sfml-system-s (dans cet ordre)
Code source du convertisseur (C++) :
- Code: Select all
#include iostream
#include fstream
#include string
#include SFML/System.hpp
#include SFML/Graphics.hpp
using namespace std;
unsigned int toGrey4(sf::Color col) //Convertit une couleur en niveau de gris sur 4 bits
{
unsigned int ret;
ret = (unsigned int) (0.299 * (float) col.r + 0.587 * (float) col.g + 0.114 * (float) col.b);
return ret / 16;
}
int main(int argc, char **argv)
{
std::string inURL, outURL;
sf::Image img;
cout "Entrez le chemin de l'image a convertir:" endl; //Recuperation des fichiers d'entrée /sortie
cin inURL;
cout "Entrez le chemin du fichier de sortie:" endl;
cin outURL;
if(!img.LoadFromFile(inURL.c_str())) //Verifications sur les fichiers
{
cout "Erreur: impossible d'ouvrir le fichier d'entree" endl;
return 0;
}
ifstream test(outURL.c_str(), ios::in);
if(test)
{
cout "Erreur: le fichier de sortie existe deja. Specifiez un autre nom de fichier." endl;
return 0;
}
ofstream outFile(outURL.c_str(), ios::out | ios::trunc);
if(!outFile)
{
cout "Erreur: impossible d'ouvrir le fichier de sortie" endl;
}
/// Partie a changer, pour l'instant ca recupere les pixels un à un , ca les convertit en gris et ca les met dans le fichier de sortie en respectant une syntaxe C
outFile endl "static unsigned int image_width = " img.GetWidth() ";" endl;
outFile "static unsigned int image_height = " img.GetHeight() ";" endl;
outFile "static unsigned char image[" img.GetHeight() "][" img.GetWidth() "] = {" endl;
for(unsigned int i = 0; i img.GetHeight(); i ++)
{
outFile "{";
for(unsigned int j = 0; j img.GetWidth(); j ++)
{
sf::Color c = img.GetPixel(j, i);
unsigned int g = toGrey4(c);
outFile "0x" hex g;
if(j != img.GetWidth() - 1)
outFile ",";
}
outFile "}";
if(i != img.GetHeight() - 1)
outFile ",";
outFile endl;
}
outFile "};" endl endl;
outFile.close();
return 0;
}
Ce qui est pratique c'est que la partie gestion des images est entièrement gérée par la SFML, pas besoin de s'embêter avec ça; et ça marche quelque soit la taille/le format des images
Voila, à partir de ça il faudrait que tu modifies les outputs pour que ça corresponde à la syntaxe d'un fichier xml que tu pourras mettre dans le tns, si tu as besoin de plus de détails demande-moi
PS: pour compiler ça il faut linker avec sfml-graphics-s sfml-window-s sfml-system-s (dans cet ordre)
TabVar - Etude de fonctions sur Nspire!
-
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 207
- Joined: 26 Jan 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Polytechnique
Re: Dessiner avec sa TI-nspire
JayTe wrote:Perso j'utilise la SFML principalement en C++, mais elle est aussi dispo en C, Python, Ruby... après je sais pas dans quel langage tu avais commencé ton projet...
Ce qui est pratique c'est que la partie gestion des images est entièrement gérée par la SFML, pas besoin de s'embêter avec ça; et ça marche quelque soit la taille/le format des images
Voila, à partir de ça il faudrait que tu modifies les outputs pour que ça corresponde à la syntaxe d'un fichier xml que tu pourras mettre dans le tns, si tu as besoin de plus de détails demande-moi
PS: pour compiler ça il faut linker avec sfml-graphics-s sfml-window-s sfml-system-s (dans cet ordre)
Oinn, je déteste la ligne de commande . Merci, dès que j'ai un peu de temps, je vais voir ce que je peux en faire. Sinon, je te rappelle juste comme ça que malheureusement, je ne peut que faire des images N/B, et pas en niveaux de gris, TI n'ayant pas implanté (à ma connaissance) un moyen de faire un point de la couleur voulue.
(J'avais commencé mon programme en basic, mas je vais essayer de me débrouiller avec le C)
-
Ciwtron
Niveau 11: LV (Légende Vivante)- Posts: 1332
- Joined: 29 Nov 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1S
Re: Dessiner avec sa TI-nspire
Depuis la version 2.0, on peut mettre un point ou un nuage de points en niveaux de gris.
Il y a 6 niveaux de gris possibles, si je me souvient bien...
Il y a 6 niveaux de gris possibles, si je me souvient bien...
-
Dyar
Niveau 4: MC (Membre Confirmé)- Posts: 22
- Joined: 24 Feb 2010, 00:00
- Location: Clermont Ferrand
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: MP*
Re: Dessiner avec sa TI-nspire
Dyar wrote:Depuis la version 2.0, on peut définir un niveau de gris à un point ou à un nuage de points.
Il y a 6 niveaux de gris possibles, si je me souvient bien...
Nahhh, c'est vrai? TI m'aurait écouté ou c'est vraiment venu d'eux même?
Dans je retire ce que j'ai dit, on va pouvoir faire de jolies images^^. Par contre je crois que je vais devoir refaire une belle partie de l'algorithme, parce qu'il n'est pas du tout prévu pour gérer ça.
-
Ciwtron
Niveau 11: LV (Légende Vivante)- Posts: 1332
- Joined: 29 Nov 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1S
Re: Dessiner avec sa TI-nspire
Ok dans ce cas, il faudra modifier un peu la fonction toGrey4 pour qu'elle retourne noir/blanc, avec quelque chose comme ça:
unsigned char toBlackWhite(sf::Color col) //Convertit une couleur en noir/blanc
{
unsigned char ret;
ret = (unsigned int) (0.299 * (float) col.r + 0.587 * (float) col.g + 0.114 * (float) col.b);
return ret 7;
}
Si tu connais la balise xml du format tns pour gérer les 6 couleurs, par contre ça va être un peu plus dur, 6 n'étant pas une puissance de 2 il faudra passer par des floats...
Sinon si tu n'as pas envie de t'embêter avec trop de lignes de commandes, je te conseille Code::Blocks comme IDE pour le C/C++, et tu n'auras pas à en taper une seule
unsigned char toBlackWhite(sf::Color col) //Convertit une couleur en noir/blanc
{
unsigned char ret;
ret = (unsigned int) (0.299 * (float) col.r + 0.587 * (float) col.g + 0.114 * (float) col.b);
return ret 7;
}
Si tu connais la balise xml du format tns pour gérer les 6 couleurs, par contre ça va être un peu plus dur, 6 n'étant pas une puissance de 2 il faudra passer par des floats...
Sinon si tu n'as pas envie de t'embêter avec trop de lignes de commandes, je te conseille Code::Blocks comme IDE pour le C/C++, et tu n'auras pas à en taper une seule
TabVar - Etude de fonctions sur Nspire!
-
JayTePremium
Niveau 8: ER (Espèce Rare: nerd)- Posts: 207
- Joined: 26 Jan 2010, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: Polytechnique
Re: Dessiner avec sa TI-nspire
JayTe wrote:Sinon si tu n'as pas envie de t'embêter avec trop de lignes de commandes, je te conseille Code::Blocks comme IDE pour le C/C++, et tu n'auras pas à en taper une seule
Je l'ai déjà .
Donc on est parti pour faire deux version. Une version N/B quasi automatique, et une version niveaux de gris mais il va falloir faire des retouche sur la calto même. Je rappelle qu'on a malheureusement pas encore trouvé comment décrypté un tnsv1.1*.
*Non Levak, non Critor, ce n'est PAS une menace de mort à geogeo si il ne me le trouve pas pour la semaine prochaine.
-
Ciwtron
Niveau 11: LV (Légende Vivante)- Posts: 1332
- Joined: 29 Nov 2009, 00:00
- Gender:
- Calculator(s):→ MyCalcs profile
- Class: 1S
Who is online
Users browsing this forum: ClaudeBot [spider] and 3 guests