PDA

Visualizza la versione completa : [C] Elaborare un immagine RGB


nicpacino
07-04-2007, 19:13
Ciao a tutti,
sono nuovo in questo forum, e sono un novizio anche in quanto a programmazione.
Per un lavoro di tesi devo poter elaborare un immagine.
Devo leggerla, esprimerne il contenuto RGB e selezionare una parte di essa.
Vi prego aiutatemi!
Nel file allegato c' un immagine per darvi un p un'idea.
Per ora sono riuscito a leggere l'immagine con il codice sotto allegato.
Come faccio ad accedere al contenuto dei pixel?
Aspetto una vostra risposta grazie.
Nicpacino
#include <stdio.h>
#include <stdlib.h>

int main()
{
//creo uno stream per leggere le immagini da file
FILE *in, *out;
int i=0, j=0;

out = fopen("./origine.bmp", "rb");
in = fopen("./eseguibile.cpp", "wb");

//creo/scrivo il file eseguibile.cpp
fprintf(in, "#include <stdio.h>\n");
fprintf(in, "#include <stdlib.h>\n\n");
fprintf(in, "int main(){\n");
fprintf(in, "int i;\n");
fprintf(in, "FILE *p;\n");
fprintf(in, "int bmp[]={");

//creo l'array contenente il codice decimale della bitmap di origine
while(!feof(out))
{
//leggo i dati dal file costituente l'immagine dove &i l'indirizzo su cui srcivo
fread(&i, sizeof(char), 1, out);
//stampo sullo stream costituito da in i valori letti che sono decimali
fprintf(in, "%d, ", i);
}
//muovo il puntatore al file eseguibile "in" a partire dalla fine del file
fseek(in, -2, SEEK_END);
printf("%d\n",*in);
fprintf(in, "};\n");

//continuo a scrivere il listato per il secondo eseguibile
fprintf(in, "p = fopen(\"./bitmap.bmp\", \"wb\");\n");
fprintf(in, "for(i=0; i<%d; i++) fprintf(p, \"%%c\", bmp[i]);\n", j);
fprintf(in, "fclose(p);\n");
fprintf(in, "printf(\"Bitmap creata\\n\");\n");
fprintf(in, "system(\"start bitmap.bmp\");\n");
fprintf(in, "system(\"pause\");\n");
fprintf(in, "return 0;\n");
fprintf(in, "}\n");

// ora chiudo la routine in questo file "caricatore"
fclose(in);
fclose(out);
system("start origine.bmp");
system("PAUSE");
return 0;
}

Gnix
08-04-2007, 17:10
Devi capire come funziona il formato bitmap... ti ho messo un paio di link scelti casualmente cercando struttura bitmap su google.

http://www.fortunecity.com/skyscraper/windows/364/bmpffrmt.html
http://www.di.uniba.it/~ig/KubriK/BmpFormat.html

Ciao Gnix

nicpacino
08-04-2007, 20:05
grazie per il consiglio, ora gli do un occhiata.
Nic

Loading