Часто задаваемые вопросы: TBarCode DLL / TBarCode Library
Как повысить скорость с помощью Save Image?
Как повысить скорость с помощью Save Image?
Чтобы ускорить печать штрихкодов, предлагаются следующие опции:
BCBitmapToMemory
Вместо BCSaveImageToBuffer вы можете использовать BCBitmapToMemory, который должен быть быстрее. Подробнее см. в справочнике API - BCBitmapToMemoryA .
Обратите внимание, что BitmapToMemory не поддерживает отрисовку шрифта и также использует другую единицу измерения при передаче размера. Если вы получаете код ошибки недостатка памяти (eErr_OutOfMemory), увеличьте размер буфера (используйте возвращённое значение *pnSize) и вызовите функцию снова. Размер созданного растрового изображения также влияет на скорость (но не так сильно).
Режим отрисовки (Draw Mode)
Вы можете изменить режим отрисовки на "compatible", что должно привести к значительно лучшей производительности. Подробнее см. в справочнике API - BCSetDrawModeExt .
Однако режим отрисовки "compatible" иногда даёт увеличенные штрихи/точки (или наоборот), отклонение составляет 1 пиксель. Этот режим отрисовки использует функцию GDI Rectangle - корректность отрисовки штрихов зависит от графического/видеодрайвера, а также от драйвера принтера. Примерно в 90-95% случаев использования разрешение не имеет значения (отклонение в 1 пиксель можно игнорировать при печати с разрешением 1200 dpi), но при низком разрешении растровых изображений 1 пиксель — это уже много. По этой причине важно тестирование.
Установите это перед вызовом BCDraw или BCSaveImage:
BCSetDrawModeExt (pBarCode, eDrawMode_Compatible);
Многопоточность (Multi-Threading)
Для многопоточности также учитывайте следующие советы: