PDA

View Full Version : [VB6] Controllo RGB su immagini BMP


roby1483
11-12-2003, 12:56
Salve a tutti, e' un po' che non posto in questa sezione del forum, spero che mi riaccettiate tra voi :D .
Ho bisogno di un piccolo aiuto che come da titolo riguarda un'immagine bitmap sulla quale devo regolare il colore, potete aiutarmi?

Grazie a tutti anticipatamente.
;)

roby1483
11-12-2003, 20:22
Sono riuscito a farlo con le API GetPixels e SetPixels ma dato che deve richiamare le funzioni su ogni singolo pixel dell'imagine mi chiedevo se ci fosse qualcosa di più performante.

roby1483
12-12-2003, 11:00
La soluzione che ho trovato non è attuabile perchè si pianta il PC! Se lo facio su una porzione del'imagine ad esempio 100x100 pixel funziona ma ha un costo troppo alto in tempo.
Nessuno conosce un metodo migliore o un ocx che possa farmi calibrare il colore?

Vi prego aiutatemi :( .

matpez
12-12-2003, 12:38
OK, spiegami cosa perfettamente vuoi fare...

non ho capito bene se vuoi colorare un determinato pixel con un altro colore o che cosa :confused:

roby1483
12-12-2003, 13:33
Allora a questo (http://www.rsantini83.supereva.it/varie/rgb.rar) indirizzo c'è un rar con il progettino di esempio che ho fatto.
Ho tolto il Debug.print ed è molto più veloce tanto da poter applicare l'algoritmo a tutta l'immagine anzi che ad una porzione di 100x100 pixel.
Sinceramente di grafica non conosco molto e non so come funzioni la regolazione dei canali RGB. Ho trovato in rete un ocx che fa questa cosa molto velocemente ma è un demo. Magari lo rarro e ti faccio avere in pvt il link per scaricarlo così gli puoi dare un'occhiata.

Quello che devo fare nell'applicazione finale sostanzialmente è regolare i colori di un'immagine acquisita da webcam.

matpez
12-12-2003, 18:46
I link nn vanno :(

roby1483
12-12-2003, 19:46
A me funzionano, quando ti si apre la pagina di supereva devi cliccare sul link scritto nella pagina.
Cmq il link è questo: http://www.rsantini83.supereva.it/varie/rgb.rar

matpez
12-12-2003, 20:57
Ho dato un occhiata al tuo pregettino e se devo dire la verità avrei fatto anche io la stessa cosa!

Non so come l'ocx faccia a fare la stessa cosa + veloce e se ti devo dirla tutta io odio la grafica per cui le funzioni di grafica nemmeno le conosco :)

Magari se mi salta in mente lc ti faccio sapere!

ciaooooooooooo :p

roby1483
13-12-2003, 10:14
OK, grazie per ora ;) .

roby1483
16-12-2003, 15:59
Finalmente ci sono novità, stamani durante la lezione di architettura degli elaboratori mi è venuto in mente come potevo implementare la soluzione al problema e appena sono tornato a casa l'ho fatta! Rimane la questione della lentezza (a quella non so porre rimedio) ma adesso il colore viene corretto nella giusta maniera :D . Al link postato sopra ho messo il progettino aggiornato.
Adesso rimane l'ultimo problema e per me il più difficile, come faccio a salvare l'immagine? Con SavePicture non funziona, o meglio, funziona ma salva l'immagine originale perchè comunque sia la proprietà picture della PictureBox non viene cambiata. Se scaricate il progettino potrete vedere che dopo aver calibrato il colore se riducete il form a icona e lo ritirate su l'immagine è tornata quella originale! Ho trovato un esempio in rete sull'API BitBlt che cattura lo sfondo applicandola ad una PictureBox ma anche questa funzione non modifica lo stato della PictureBox e se viene ridotto ad icona il form si perde l'immagine.

Insomma facendola poco lunga qualcuno ha idea di come possa fare per salvare le modifiche del colore all'immagine?

roby1483
17-12-2003, 15:53
Non ci credo che nessuno sappia come posso fare per salvare le modifiche di quell'immagine :( .

roby1483
04-01-2004, 15:23
Tutto risolto :D :D :D !!!
Il problema stava nel fatto che la proprietà autoredraw della picturebox doveva essere impostata a true.
Adesso l'immagine modificata viene salvata.
Grazie a tutti quelli che hanno cercato di darmi una mano ;) .