Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

[C++]Trasformare bitmap in matrice

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: Triumph Of Steel, archimede

[C++]Trasformare bitmap in matrice

Postdi Brandingo » 14/06/06 16:11

Sono davvero sull'orlo di una crisi di nervi.
Devo aprire un file di immagine (.bmp) con visual c++, prelevare i valori di colore dei pixel e inserirli all'interno di una matrice.
L'unica cosa che riesco a fare è caricare l'immagine...

Vi prego aiutatemi!!!
Grazie...
Brandingo
Utente Junior
 
Post: 10
Iscritto il: 14/06/06 16:05

Sponsor
 

Postdi Dylan666 » 14/06/06 16:23

Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46

Postdi Brandingo » 14/06/06 16:46

Si, ho usato la funzione cerca e avevo anche già trovato questo thread...
Le funzioni GetPixel e SetPixel non vanno bene per ciò che devo fare io, mi rendo l'applicazione troppo lenta.
Io ho proprio bisogno di creare un matrice di dati con puntatori ai pixel e modificarne il valore del colore.
So che il campo bmBits della struttura BITMAP punta al primo elemento dell'ultima riga....ma non so come risalire al primo elemento della prima colonna ne come modificarne il colore!
Ed è ciò che vorrei fare!
Brandingo
Utente Junior
 
Post: 10
Iscritto il: 14/06/06 16:05

Postdi GAD » 14/06/06 19:13

Se puoi usare librerie esterne conviene utilizzare gdi+ che hanno già oggetti stanziabili con vari metodi che devi solo richiamare, altrimenti puoi ricavare l'hdc della bitmap e poi usi le funzioni con l'handler tipo GetDiBits, SetBitmapBits,stretchblt
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

Postdi Brandingo » 14/06/06 20:31

Il fatto è che io devo filtrare l'immagine e ogni pixel deve essere aggiornato sulla base del valore degli 8 pixel che lo circondano.
Per questo preferirei portare il tutto su matrice e poi aggiornare i valori.
Brandingo
Utente Junior
 
Post: 10
Iscritto il: 14/06/06 16:05

Postdi GAD » 14/06/06 20:51

Appunto, ma il rallentamento grosso lo hai nel momento in cui hai un doppio ciclo per ottenere un pixel alla volta(adesso usi la getpixel dentro 2 cicli for innestati che vanno da 0 a lunghezza e da 0 ad altezza no?)
Se invece usi una funzione macro riversi con una sola operazione tutta la memoria in cui la bitmap e' allocata (come fosse una memcpy) e come prestazioni computazionali passi da n quadro a ~1 (che e' un bel guadagno).
Poi una volta che hai mappato la matrice, cambi i singoli pixel (che dovrebbero essere pochi e cmq non hai possibilità di andare piu' veloce visto che i devi cambiare colore) e li ritrasferisci tutti in una botta dentro la bitmap con un memcpy. Cosi' l'unica cosa "pesante" sono i cambiamenti dei singoli pixel e non la mappatura I\O della bitmap

Guarda qui http://www.differentpla.net/node/220 e cerca anche su http://www.codeproject.com ci sono parecchie soluzioni tipo questa http://www.codeguru.com/vb/gen/vb_graph ... php/c2381/
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

Postdi Dylan666 » 14/06/06 21:44

Brandingo ha scritto:Si, ho usato la funzione cerca e avevo anche già trovato questo thread...


Quella che leggi dopo la linea _________________ è la mia firma, cioè una frase, serie di frasi o immagini che ogni utente può far inserire in automatico alla fine di OGNI suo post (si configura dal pannello "Profilo"). Ciò che dice quindi non è riferito a te in particolare ma a tutti in generale ;)
Avatar utente
Dylan666
Moderatore
 
Post: 38040
Iscritto il: 18/11/03 16:46


Torna a Programmazione


Topic correlati a "[C++]Trasformare bitmap in matrice":


Chi c’è in linea

Visitano il forum: Nessuno e 6 ospiti