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:

Lascia il tuo commento:

Note:
  • La tua email non è obligatoria e non sarà visibile in alcun modo
  • Si prega di inviare solo commenti relativi a questa pagina
  • Commenti inappropriati o offensivi saranno modificati o eliminati
  • Codici HTML non sono consentiti. Prego usare i BB code:
    [b]bold[/b], [u]underline[/u], [i]italic[/i], [code]code[/code]
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.