Prelevare la matrice pixel di una Bitmap in modo diretto

domenica 11 giugno 2006 - 18.56

mrb Profilo | Newbie

Ciao a tutti.
Qualcuno saprebbe dirmi se c'è un modo diretto per copiare la matrice di pixel di una bitmap (.NET) in una istanza della classe Matrix o meglio ancora in una matrice realizzata con doppi puntatori?
so che c'è il metodo GetPixel e SetPixel della classe Bitmap per prelevare ogni singolo pixel ma quello che vorrei io è copiare l'intera matrice direttamente senza effettuare la copia pixel per pixel.
Grazie

Brainkiller Profilo | Guru

>Ciao a tutti.
>Qualcuno saprebbe dirmi se c'è un modo diretto per copiare la
>matrice di pixel di una bitmap (.NET) in una istanza della classe
>Matrix o meglio ancora in una matrice realizzata con doppi puntatori?
>so che c'è il metodo GetPixel e SetPixel della classe Bitmap
>per prelevare ogni singolo pixel ma quello che vorrei io è copiare
>l'intera matrice direttamente senza effettuare la copia pixel
>per pixel.

Ciao,
della matrice poi cosa ne fai ? che uso viene fatto di quei dati ? Anche io generalmente uso GetPixel e SetPixel. Se spieghi meglio posso darti consigli migliori finalizzati allo scopo.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

mrb Profilo | Newbie

Devo applicare degli algoritmi di elaborazione delle immagini. Per fare questo mi sto creando una classe c++. Quindi quello che voglio fare è salvare i pixel dell'immagine in una struttura a matrice da me creata con doppi puntatori. Il problema è che copiare i pixel uno alla volta (con GetPixel) nella mia struttura ci impiega molto tempo (e non ho svolto ancora alcuna elaborazione sull'immagine) quindi cerco un modo che permetta di salvare direttamente la matrice di pixel della bitmap nella mia matrice.
Spero si essere stato chiaro e grazie ancora.
Ciao

Brainkiller Profilo | Guru

Ciao,
ti riporto un pezzo di classe che mi ha dato gentilmente un collega che lavora nel campo del Gaming Online:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Come puoi vedere la classe è in .NET, e il metodo FromBitmap fa quello da te richiesto ma comunque prendere Pixel per Pixel il colore dell'immagine, solo che in questo caso avviene in un blocco unsafe quindi fa uso di puntatori per rendere più veloce l'esecuzione. L'algoritmo è migliorabile ma è già qualcosa.
Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

mrb Profilo | Newbie

Grazie mille.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5