FAQ TBarCode DLL / TBarCode Library
Come posso migliorare la velocità con Save Image?
Come posso migliorare la velocità con Save Image?
Per velocizzare la stampa dei codici a barre, si suggeriscono le seguenti opzioni:
BCBitmapToMemory
Invece di BCSaveImageToBuffer potete usare BCBitmapToMemory, che dovrebbe essere più veloce. Per maggiori informazioni consultate l'API Reference - BCBitmapToMemoryA .
Da notare che BitmapToMemory non supporta il rendering font e utilizza anche un'unità diversa per passare la dimensione. Se ricevete il codice di errore per memoria insufficiente (eErr_OutOfMemory), aumentate la dimensione del buffer (usate il valore *pnSize restituito) e richiamate nuovamente la funzione. Anche la dimensione della bitmap creata influisce sulla velocità (ma non in modo significativo).
Modalità di disegno
Potete cambiare la modalità di disegno in "compatible", il che dovrebbe portare a prestazioni significativamente migliori. Per maggiori informazioni consultate l'API reference - BCSetDrawModeExt .
Tuttavia, la modalità di disegno "compatible" a volte produce barre/punti ingranditi (o l'opposto); la deviazione è di 1 pixel. Questa modalità di disegno utilizza la funzione GDI Rectangle: dipende dal driver grafico/video e anche dal driver della stampante se le barre vengono disegnate correttamente. In circa il 90-95% dei casi d'uso la risoluzione non ha importanza (la deviazione di 1 pixel può essere ignorata con una stampante a 1200 dpi), ma con bitmap a bassa risoluzione, 1 pixel è già molto. Per questo motivo, il test è importante.
Impostate questo prima di richiamare BCDraw o BCSaveImage:
BCSetDrawModeExt (pBarCode, eDrawMode_Compatible);
Multi-threading
Per il multi-threading dovreste considerare anche questi suggerimenti: