π
<-

TI-Nspire Image Converter 3

Pour le TI-Basic sur Nspire

Re: TI-Nspire Image Converter 3

Unread postby Levak » 14 Nov 2010, 20:17

Lionel Debroux wrote:Synaptic, c'est pour les dérivées Debian :):
Fedora a son propre système/gestionnaire de packages, openSUSE aussi, et puis plein d'autres ont leur propre système de package, tous incompatibles entre eux. Bref, c'est le bazar. Les quantités de systèmes de packages incompatibles sont plutôt une mauvaise chose.


Je voulais dire : apt (Synaptic) pour les dérivé Débian, yum (Yumex) pour les dérivés Fedora. Connais pas pour OpenSUSE :p


(j'écris ça alors que ça fait cinq ans que j'ai basculé vers Linux 95% du temps sur mes machines perso et boulot. Mais quand il y a une connerie, il faut le savoir, et le reconnaître.)

Ya aucun doute... me too
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: TI-Nspire Image Converter 3

Unread postby Excale » 15 Nov 2010, 20:53

J'ai essayé de réécrire BMP2XML en C++, et j'ai mis ça dans le même fichier que IMG2BMP (déjà en C++).

Ça me donne un truc très moche qui ne fonctionne pas correctement.

Code: Select all
#include iostream
#include fstream
#include string

#include SFML/System.hpp
#include SFML/Graphics.hpp

using namespace std;

void BMPXML()
{
    ofstream xmlfile("Problem1.xml", ios::out | ios::trunc);  //déclaration du flux et ouverture du fichier
    ifstream bmpfile("converted.bmp", ios::in);  // on ouvre le fichier en lecture

    if(bmpfile  xmlfile)  // si l'ouverture a réussi
        {
            char poubelle;
            char bmpbrut;
            xmlfile  "?xml version=""1.0"" encoding=""UTF-8"" ?prob xmlns=""urn:TI.Problem"" ver=""1.0""syme t=""1"" f=""0""nx1/nv{";

            for (int i = 0 ; i  54 ; i++) { bmpfile.get(poubelle); }

            for (int i = 1 ; i = 7 ; i++)
            {
                if (i1)
                {
                    xmlfile  "-1}/v/ee t=""1"" f=""0""nx"  i  "/nv{";
                }
                for (int j = 1 ; i = 31 ; i++)
                {
                    for (int k = 1 ; i = 318 ; i++)
                    {
                        if (bmpfile.get(poubelle)  bmpfile.get(poubelle)  bmpfile.get(bmpbrut))
                        {
                            if (bmpbrut==0)
                            {
                                xmlfile  k  ",";
                            }
                        }
                    }
                    bmpfile.get(poubelle);
                    bmpfile.get(poubelle);
                }
            }
            bmpfile.close();  // on referme le fichier
        }
        else
                cerr  "Erreur à l'ouverture !"  endl;

    // Partie II
    ifstream bmp2file("converted.bmp", ios::in);  // on ouvre le fichier en lecture
    if(bmp2file  xmlfile)  // si l'ouverture a réussi
        {
            char poubelle;
            char bmpbrut;
            xmlfile  "-1}/v/ee t=""1"" f=""0""ny1/nv{";

            for (int i = 0 ; i  54 ; i++) { bmpfile.get(poubelle); }
            for (int i = 1 ; i = 7 ; i++)
            {
                if (i0)
                {
                    xmlfile  "-1}/v/ee t=""1"" f=""0""ny"  (i + 1)  "/nv{";
                }
                for (int j = 1 ; i = 31 ; i++)
                {
                    for (int k = 1 ; i = 318 ; i++)
                    {
                        if (bmpfile.get(poubelle)  bmpfile.get(poubelle)  bmpfile.get(bmpbrut))
                        {
                            if (bmpbrut==0)
                            {
                                xmlfile  (j + (i * 31))  ",";
                            }
                        }
                    }
                    bmpfile.get(poubelle);
                    bmpfile.get(poubelle);
                }
            }
            xmlfile  "un truc long qui n'a pas beaucoup d'inportance";
            bmpfile.close();  // on referme le fichier
        }
        else
                cerr  "Erreur à l'ouverture !"  endl;
       
    xmlfile.close();  // on referme le fichier
}




unsigned int toGrey1(sf::Color col)
{
    unsigned char ret;
    ret = (unsigned int) (0.299 * (float) col.r + 0.587 * (float) col.g + 0.114 * (float) col.b);
    return ret  7;
}

unsigned int round(float x)
{
    unsigned int ret = (unsigned int) x;
    if(x - (float) ret = 0.5)
        ret ++;
    return ret;
}

int main(int argc, char **argv)
{
    if(argc != 2)
    {
        cout  "Converts an image into a BW 318*212 24bpp BMP"  endl;
        cout  "Usage: IMG2BMP input_file"  endl;
        return 0;
    }

    sf::Image img, dst;
    float xFactor, yFactor;
    if(!img.LoadFromFile(argv[1]))
    {
        cout  "Erreur: impossible d'ouvrir le fichier d'entree: ""  argv[2]  """  endl;
        return 0;
    }
    xFactor = img.GetWidth() / 318.f;
    yFactor = img.GetHeight() / 212.f;
    dst.Create(318,212, sf::Color::White);
    for(unsigned int i = 0; i  318; i ++)
        for(unsigned int j = 0; j  212; j ++)
            dst.SetPixel(i, j, toGrey1(img.GetPixel(round((float)i * xFactor), round((float) j * yFactor))) ? sf::Color::White : sf::Color::Black);
    dst.SaveToFile("./converted.bmp");
    BMPXML();
    return 0;
}


Si quelqu'un a une envie de le regarder, je ne le prive pas :D: .
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: TI-Nspire Image Converter 3

Unread postby Levak » 15 Nov 2010, 21:50

Qu'est-ce qui ne marche pas ?
Déjà ya un 1 qui se balade en plein milieu...

Je trouve la fonction round() inutile
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: TI-Nspire Image Converter 3

Unread postby Excale » 15 Nov 2010, 22:05

Levak wrote:Qu'est-ce qui ne marche pas ?
Déjà ya un 1 qui se balade en plein milieu...

Je trouve la fonction round() inutile


Le 1 je sais pas comment il est arrivé.. il n'est pas sur CodeBlocks.

Et euh.. pour round, c'est pas moi. Je me suis seulement chargé d'écrire la fonction BMPXML().

Le reste c'est fait par Jayte pour mettre l'image au bon format.

Et ce qui ne marche pas, c'est que dans mon fichier xml de sortie, j'ai seulement:
Code: Select all
?xml version=1.0 encoding=UTF-8 ?prob xmlns=urn:TI.Problem ver=1.0syme t=1 f=0nx1/nv{-1}/v/ee t=1 f=0ny1/nv{-1}/v/ee t=1 f=0ny2/nv{ + "le truc long de la fin du fichier"


Le x en "pseudo rouge" doit être un y. Ça j'ai compris, je vais le corriger.
Voilà.
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: TI-Nspire Image Converter 3

Unread postby Levak » 15 Nov 2010, 22:27

Condition étrange :
if (bmpfile.get(poubelle) bmpfile.get(poubelle) bmpfile.get(bmpbrut))
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: TI-Nspire Image Converter 3

Unread postby Excale » 15 Nov 2010, 22:57

En gros ça veut dire:

Si tu peut (prendre un caractère dans le fichier, prendre un caractère dans le fichier, prendre un caractère dans le fichier).

Donc en gros: Si tu peut prendre 3 caractères (= si on est pas arrivé au bout).

Mais le problème est surtout là: pour toi, combien de fois le programme exécute-il la boucle

if (i1)
{
xmlfile x" {";
}

?
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: TI-Nspire Image Converter 3

Unread postby Levak » 15 Nov 2010, 23:30

Une seule fois, c'est un for, il va itérer ton i, donc dépassera 1 au deuxième tour (après être passé 1 fois)
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: TI-Nspire Image Converter 3

Unread postby Excale » 15 Nov 2010, 23:44

Levak wrote:Une seule fois, c'est un for, il va itérer ton i, donc dépassera 1 au deuxième tour (après être passé 1 fois)


Ce que je demande dans le if c'est bien si i est supérieur à 1, non?
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

Re: TI-Nspire Image Converter 3

Unread postby Levak » 15 Nov 2010, 23:50

Excale wrote:
Levak wrote:Une seule fois, c'est un for, il va itérer ton i, donc dépassera 1 au deuxième tour (après être passé 1 fois)


Ce que je demande dans le if c'est bien si i est supérieur à 1, non?

Ah oui pardon, me suis trompé de sens.

Il passe dans la boucle tout le temps, sauf la première fois.

edit : par contre ça j'ai un doute : for (int j = 1 ; i = 31 ; i++)
Responsable design/graphique de TI-Planet
I do not get mad at people, I just want them to learn the way I learnt.
ImageTNOC [topic][DL]
nClock [topic][DL]
HideManager [topic][DL]
ZLock [topic][DL]
Theme Editor [topic][DL]
Mes programmes
User avatar
LevakAdmin
Niveau 14: CI (Calculateur de l'Infini)
Niveau 14: CI (Calculateur de l'Infini)
Level up: 98.9%
 
Posts: 6414
Images: 22
Joined: 27 Nov 2008, 00:00
Location: 0x1AACC355
Gender: Male
Calculator(s):
MyCalcs profile
Class: BAC+5: Epita (ING3)

Re: TI-Nspire Image Converter 3

Unread postby Excale » 16 Nov 2010, 00:00

Levak wrote:
Excale wrote:
Levak wrote:Une seule fois, c'est un for, il va itérer ton i, donc dépassera 1 au deuxième tour (après être passé 1 fois)


Ce que je demande dans le if c'est bien si i est supérieur à 1, non?

Ah oui pardon, me suis trompé de sens.

Il passe dans la boucle tout le temps, sauf la première fois.


Donc je ne comprends pas pourquoi au final ce n'est pas écrit 6 fois.

Levak wrote:edit : par contre ça j'ai un doute : for (int j = 1 ; i = 31 ; i++)

En Basic j'aurais écrit: for i,1,31 step 1
User avatar
ExcaleAdmin
Niveau 16: CC2 (Commandeur des Calculatrices)
Niveau 16: CC2 (Commandeur des Calculatrices)
Level up: 3.9%
 
Posts: 2955
Images: 3
Joined: 10 Sep 2010, 00:00
Gender: Male
Calculator(s):
MyCalcs profile

PreviousNext

Return to Nspire-Basic

Who is online

Users browsing this forum: ClaudeBot [spider] and 1 guest

-
Search
-
Social TI-Planet
-
Featured topics
Comparaisons des meilleurs prix pour acheter sa calculatrice !
"1 calculatrice pour tous", le programme solidaire de Texas Instruments. Reçois gratuitement et sans aucune obligation d'achat, 5 calculatrices couleur programmables en Python à donner aux élèves les plus nécessiteux de ton lycée. Tu peux recevoir au choix 5 TI-82 Advanced Edition Python ou bien 5 TI-83 Premium CE Edition Python.
Enseignant(e), reçois gratuitement 1 exemplaire de test de la TI-82 Advanced Edition Python. À demander d'ici le 31 décembre 2024.
Aidez la communauté à documenter les révisions matérielles en listant vos calculatrices graphiques !
1234
-
Donations / Premium
For more contests, prizes, reviews, helping us pay the server and domains...
Donate
Discover the the advantages of a donor account !
JoinRejoignez the donors and/or premium!les donateurs et/ou premium !


Partner and ad
Notre partenaire Jarrety Calculatrices à acheter chez Calcuso
-
Stats.
888 utilisateurs:
>863 invités
>18 membres
>7 robots
Record simultané (sur 6 mois):
6892 utilisateurs (le 07/06/2017)
-
Other interesting websites
Texas Instruments Education
Global | France
 (English / Français)
Banque de programmes TI
ticalc.org
 (English)
La communauté TI-82
tout82.free.fr
 (Français)