E' lento per colpa di GetPixel e SetPixel, infatti ogni volta questi richiamano Bitmap.LockBits e Bitmap.UnlockBits per il singolo pixel rallentando di molto l'operazione
La via più veloce è tramite codice unsafe, ma potrebbe essere interessante anche sfruttare il Marshalling per avere un'eventuale gestione di eccezioni (e qualsiasi altro motivo per cui il CLR ti è necessario) senza compromettere di molto le prestazioni.
Puoi trovare un articolo di due pagine abbastanza chiaro, in inglese e con relativi codici esempio a questi indirizzi:
http://davidthomasbernal.com/blog/2008/03/13/c-image-proce ...
http://davidthomasbernal.com/blog/2008/03/14/c-image-proce ...
Ultima modifica effettuata da il 10/10/2011 alle 20:13 |