2016-11-13 2 views
0

Ich erstelle verschiedene 2D-Arrays von Größen von 100x100 bis 2000x2000 Elemente. Die Werte innerhalb der Arrays können auf eine Grauskala von 0 bis 255 begrenzt werden und müssen dann in ein PGM-Bild geschrieben werden, um die Daten visuell darzustellen.Schreibe 2D-Array in PGM Graustufenbild

Zum Beispiel Ich erkläre die Arrays global als:

element case1[100][100]; 

Element eine Struktur double pixelValue und ein boolescher Wert ist (das wird nicht verwendet werden, wenn sie tatsächlich in die Datei zu schreiben, aber ist notwendig, das Programm).

das PGM-Bild Schriftlich, ich Fehler habe die FILE *fp in diesem Bereich des Codes unter Berücksichtigung, wenn nach dem Header zu schreiben:

int *p 
for (int x = 0; x < dimension; x++) 
{ 
    for (int y = 0; y < dimension; y++) 
    { //also doesn't work as: fp << (unsigned char)case1[x][y].pix; 
     int pix = case1[x][y].pixelValue; 
     *p = pix; 
     fp << (unsigned char)*p; 
    } 
} 
fclose(fp); 

Ich bin nicht sicher, wie man mit dem Zeiger, um zu arbeiten um die pixelValue von jedem Ort innerhalb des 2D-Arrays zu bekommen. Ich muss in der Lage sein, durch jede pixelValue iterieren, um die visuelle Darstellung der Daten zu erhalten.

Vielen Dank für Ihre Hilfe!

Antwort

0

Verwendet fputc() stattdessen, so dass ich direkt Werte anstelle von Zeigern einfügen konnte.