Condividi:
Problemi di HTML? Di PHP, ASP, .NET, JSP, Perl, SQL, JavaScript, Visual Basic..?
Vuoi realizzare programmi in C, C++, Java, Ruby o Smalltalk, e non sai da che parte cominciare?
Entra qui e troverai le risposte!
Moderatori: Anthony47, Triumph Of Steel, archimede
di alex.zanon » 11/07/05 22:33
Ciao a tutti,
vorrei sapere come posso fare, in linea di principio, per leggere, attraverso un programma scritto in C++ o in VB, i valori della scala RGB da un file BMP pixel per pixel, eventualmente potendoli modificare.
Grazie!
Alex
-
alex.zanon
- Utente Junior
-
- Post: 30
- Iscritto il: 12/07/04 16:24
- Località: Bologna
di GAD » 11/07/05 23:19
Dove e quando lo vuoi fare e che strutture hai, utilizzi mfc o c++ senza mfc?
Se hai a disposizione mfc la cosa piu' semplice e stanziare un oggeto CBitmap a cui passare l'handle della bitmap che ottieni da LoadImage();
es:
handle=LoadImage();
CBitmap bitmap= new CBitmap;
bitmap->fromhandle(handle);
Adesso in memoria hai la bitmap come oggetto CBitmap e puoi utilizzre tutti i metodi dell'oggetto per accedere al contenuto come GetBitmapBits() SetBitmapBits()
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
-
GAD
- Moderatore
-
- Post: 2184
- Iscritto il: 22/09/02 14:36
- Località: Nebbiosa
di alex.zanon » 12/07/05 09:31
Non ho le MFC. Sono scaricabili? Ho provato a cercare, ma trovo solo informazioni senza possibilità di download. Sono librerie utilizzabili anche in un ambiente diverso da Visual C++? (io uso Bloodshed DevCpp).
Senza MFC, come si fa?
Io ho provato con un metodo semplicissimo, ma ha un bug (e forse non solo quello): non legge i valori della scala RGB che sono 000!
In pratica apro il file e converto ogni carattere nel suo codice ASCII: sapendo com'è strutturato un file BitMap (intestazioni, etc...) riesco ad ottenere i valori RGB dei vari pixel, tranne di quelli che sono 000.
E' corretto in linea di principio? E' possibile risolvere questo problema o devo cambiare radicalmente strategia?
Grazie!
Alex
-
alex.zanon
- Utente Junior
-
- Post: 30
- Iscritto il: 12/07/04 16:24
- Località: Bologna
di GAD » 12/07/05 09:58
No le mfc sono a pagmaneto e sono integrate solo in visual studio.
Sicuro che gli 000 non siano semplicemente il colore nero?
Prova acercare su google "devcpp packages" ottieni tantissime librerie e tutorial su come fare già pronti
Quando l'ultimo albero sarà abbattuto,l'ultimo pesce catturato,l'ultimo fiume avvelenato,
soltanto allora gli uomini si accorgeranno chei soldi non possono essere mangiati
-
GAD
- Moderatore
-
- Post: 2184
- Iscritto il: 22/09/02 14:36
- Località: Nebbiosa
di zello » 12/07/05 23:24
Il formato delle bmp è documentato nel windows Platform SDK (che è libero per il download). Comunque - una volta che sai come caricare una bitmap in memoria - puoi usare:
- Codice: Seleziona tutto
GetPixel
The GetPixel function retrieves the red, green, blue (RGB) color value of the pixel at the specified coordinates.
COLORREF GetPixel(
HDC hdc, // handle to DC
int nXPos, // x-coordinate of pixel
int nYPos // y-coordinate of pixel
);
che è spaventosamente lenta, però, se vuoi fare operazioni sulla bitmap (tipo cross-fading o comunque manipolazioni).
Il faut être toujours ivre. Tout est là : c'est l'unique question. Pour ne pas sentir l'horrible fardeau du Temps qui brise vos épaules et vous penche vers la terre,il faut vous enivrer sans trêve...
-
zello
- Moderatore
-
- Post: 2351
- Iscritto il: 06/05/02 13:44
Torna a Programmazione
Topic correlati a "Leggere pixel immagine BMP":
Chi c’è in linea
Visitano il forum: Nessuno e 21 ospiti