Italiano - English

PkCBitmap: Windows Bitmap File Loader C++ class

Viene presentata una classe la lettura ultra veloce di un file bitmap in C++. La versione originale a cura di Benjamin Kalytta è stata modificata da PkLab introducendo, tra l'altro, il riutilizzo della memoria.

Può capitare di dover realizzare un software in cui è necessario leggere numerosissime immagini bitmap da file. In questo caso la performance dell'operazione è fondamentale e purtroppo le librerie .NET  C# di Visual Studio sono decisamente lente.

Inoltre se le immagini sono lette in sequenza e sono tutte della stessa dimensione, come accade ad esempio per i frame di un video, l'ottimizzazione della memoria puo' fornire un grande aiuto.

La classe CBitmap qui presentata propone una lettura diretta di un file bitmap, utilizzando codice C++ estremamente più veloce del metodo Image::FromFile o Image::FromStream. Inoltre la classe propone un metodo per il riutilizzo della memoria in caso la dimensione e formato dell'immagine è identico alla immagine letta in precedenza.

La versione originale bitmap.h della classe qui presentata è stata sviluppata da Benjamin Kalytta (http://www.kalytta.com)

La versione modificata PkBitmap.h da PkLab:

  • aggiunge alcune ottimizzazioni e modifiche
  • introduce il metodo ReLoad che, nel caso esiste, utilizza la memoria allocata per un Load precedente.
  • introduce un overload per il metodo GetBits che permette di specificare il formato desiderato per il buffer.

Codice sorgente per una applicazione di test performance test.zip

Vota questa pagina:

0 Commenti:

Il codice, le illustrazioni e gli esempi riportati in questa pagina sono solo a scopo illustrativo. L'autore non prende alcuna responsabilità per il loro utilizzo da parte dell'utente finale.
Questo materiale è di proprietà di Pk Lab ed è utilizzabile liberamente a condizione di citarne la fonte.