Rsk
19-06-2010, 19:34
Ciao a tutti..
Dovrei realizzare un programma che prende in input una immagine png e conta i pixel di un certo colore.
Non ho esperienza a riguardo e quindi mi rivolgo a voi.
Io stavo pensando a questo
int main ()
{
FILE * pFile;
long lSize;
char * buffer;
size_t result;
pFile = fopen ( "img.png" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
result = fread (buffer,1,lSize,pFile);
if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
fclose (pFile);
free (buffer);
return 0;
}
Leggo il file in formato binario.. ma poi?
Come faccio ad avere la rappresentazione numerica dell'immagine per poter distinguere i colori?
Devo per forza utilizzare librerie di terze parti?
Dovrei realizzare un programma che prende in input una immagine png e conta i pixel di un certo colore.
Non ho esperienza a riguardo e quindi mi rivolgo a voi.
Io stavo pensando a questo
int main ()
{
FILE * pFile;
long lSize;
char * buffer;
size_t result;
pFile = fopen ( "img.png" , "rb" );
if (pFile==NULL) {fputs ("File error",stderr); exit (1);}
// obtain file size:
fseek (pFile , 0 , SEEK_END);
lSize = ftell (pFile);
rewind (pFile);
buffer = (char*) malloc (sizeof(char)*lSize);
if (buffer == NULL) {fputs ("Memory error",stderr); exit (2);}
result = fread (buffer,1,lSize,pFile);
if (result != lSize) {fputs ("Reading error",stderr); exit (3);}
fclose (pFile);
free (buffer);
return 0;
}
Leggo il file in formato binario.. ma poi?
Come faccio ad avere la rappresentazione numerica dell'immagine per poter distinguere i colori?
Devo per forza utilizzare librerie di terze parti?