Sono corrette queste 2 espressioni per salvare un'immagine?

di il
13 risposte

Sono corrette queste 2 espressioni per salvare un'immagine?

Void salva_immagine(pixel m[][10], char nomefile[15])
{
fileditesto.open(nomefile, ios::out);
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
fileditesto << m[j].rosso << m[j].verde << m[j].blu << " ";
fileditesto << "\n";
}
fileditesto.close();
}

oppure:

void salva_immagine(pixel m[][10], char nomefile[15])
{fstream output;
output.open(out,ios::out);
for (int i = 0; i < 10; i++)
{
for (int j = 0; j < 10; j++)
output << m[j].rosso << m[j].verde << m[j].blu << " ";
output << "\n";
}
output.close();
}

13 Risposte

  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Qual'è la definizione di pixel?
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Il pixel riguarda la risoluzione dell'immagine
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Qual'è la sua DEFINIZIONE. è un int, un COLORREF, un float un cosa?
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Si usa lo struct, ma comunque un'espressione delle due è corretta perchè il programma funziona,volevo capire se l'altra potesse ugualmente essere usata
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Secondo me nessuna delle due è corretta. Tu hai una matrice di (struct)pixel (bisogna anche vedere com'è definita) e stai scrivendo un valore di un vettore su file. Probabilmente nel file ti viene scritto il valore della posizione m[j][0]. i valori di un pixel non sono + alti di 255 (FF in hex) quindi vedi i valori di uscita perche secondo me sono errati.
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Nella seconda funzione non è definita la variabile out.
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    No la prima espressione è sicuramente corretta perchè me l'ha scritta il professore,volevo sapere se la seconda fosse ugualmente corretta
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    OK è corretta perchè te l'ha scritta il professore. La seconda no perchè l'hai scritta tu.
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Ok,non è corretta,perchè?
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    NESSUNA DELLE DUE E' CORRETTA.
    prima funzione:
    
    #include <iostream>
    #include <fstream>
    
    using namespace std;
    
    typedef struct _pixel
    {
    	int rosso;
    	int blu;
    	int verde;
    }pixel;
    
    fstream fileditesto;
    
    void salva_immagine(pixel m[][10], char nomefile[15])
    {
    	fileditesto.open(nomefile, ios::out);
    	for (int i = 0; i < 10; i++)
    	{
    		for (int j = 0; j < 10; j++)
    			fileditesto << m[j].rosso << m[j].verde << m[j].blu << " ";
    		fileditesto << "\n";
    	}
    	fileditesto.close();
    }
    
    int main()
    {
    	pixel immagine[10][10] = {0};
    	salva_immagine(immagine,"C:\\test.txt");
    	return 0;
    }
    
    Errore:
    
    error C2228: left of '.rosso' must have class/struct/union
    error C2228: left of '.verde' must have class/struct/union
    error C2228: left of '.blu' must have class/struct/union
    
    Visto che te l'ha fatta il prof vai a dirli di imparare a programmare prima di studiare.

    Secondo non lo guardo neanche per lo stesso errore e poi perche la variabile out non è definita.

    P.s.: è lo stesso professore che ti dava il codice delle matrici corrette e poi uscivano tutte le diagonali 15? se si cambia prof che fai prima.
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Codice corretto della prima
    
    void salva_immagine(pixel m[][10], char nomefile[15])
    {
    	fileditesto.open(nomefile, ios::out);
    	for (int i = 0; i < 10; i++)
    	{
    		for (int j = 0; j < 10; j++)
    			fileditesto << m[i][j].rosso << m[i][j].verde << m[i][j].blu << " ";
    		fileditesto << "\n";
    	}
    	fileditesto.close();
    }
    
    output
    
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    000 000 000 000 000 000 000 000 000 000 
    
    questo con matrice pixel 10x10 vuota.
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Sì infatti avevo lasciato , comunque quella scritta da me è corretta così:
    void salva_immagine(pixel m[][10], char nomefile[15])
    {fstream output;
    output.open(nomefile,ios::out);
    for (int i = 0; i < 10; i++)
    {
    for (int j = 0; j < 10; j++)
    output<< m[j].rosso << m[j].verde << m[j].blu << " ";
    output << "\n";
    }
    output.close();
    }
    così è corretta
  • Re: Sono corrette queste 2 espressioni per salvare un'immagine?

    Così si.
Devi accedere o registrarti per scrivere nel forum
13 risposte