Перейти к содержанию
Fire Monkey от А до Я
  • 0

Чтение QR кода, нужен компонент или тулза


M1shQa

Вопрос

Всем доброго дня. Есть программа которая считывает QR код, работает через zbar и работает ну кое-как.

Есть ли какие нибудь тулзы для delphi что бы считывать qr-код пускай не быстро, но под разными углами и с разных расстояний..?

С фокусировкой игрался, помогло с расстояниями, а вот если код под углом - уже не считывает, когда другие программы берут его через пару секунд.

Текущая штука сделана по примеру с архива с помощью zbar, работает криво, нужно держать мобильник прямо и близко к коду, а если qrкод под углом, то считывает очень редко. 

При этом на всех мобильника изображение с камеры при сканинге подфрижевает..

Ссылка на комментарий

Рекомендуемые сообщения

  • 0

ZXing Barcode Scanning Library for Delphi XE7/XE8/10 Seattle and Appmethod. ZXing.Delphi is a native Object Pascal library that is based on the well known open source Barcode Library: ZXing (Zebra Crossing). This port is based on .Net Redth port of ZXing and the Java one. This is I think the first native FireMonkey barcode lib. It is aimed at all of the FireMonkey mobile platforms.

https://github.com/Spelt/ZXing.Delphi

Ссылка на комментарий
  • 0
4 минуты назад, noisy сказал:

ZXing Barcode Scanning Library for Delphi XE7/XE8/10 Seattle and Appmethod. ZXing.Delphi is a native Object Pascal library that is based on the well known open source Barcode Library: ZXing (Zebra Crossing). This port is based on .Net Redth port of ZXing and the Java one. This is I think the first native FireMonkey barcode lib. It is aimed at all of the FireMonkey mobile platforms.

https://github.com/Spelt/ZXing.Delphi

Сейчас используется этот метод с збаром, работает плохо, не сканит под углом, делал как у них в примере архив лежит, картинка с камеры подтормаживает, но на счет подтормаживаний еще ладно, а вот сканинг под углом очень криво работает

Ссылка на комментарий
  • 0
24 минуты назад, krapotkin сказал:

опять же, збар и зксинг, не подходят :( готовы даже выложить за метод который будет работать идеально или почти баксов 50-100, конторе уж больно надо нашей, что бы все гладко работало

Ссылка на комментарий
  • 0

Изменилось ли что-либо на этом фронте?

http://www.tmssoftware.net/public/TMSFMXZBarReader.zip работает только с IOS, пример https://github.com/Spelt/ZXing.Delphi требует модуля System.Permissions которого не нахожу в 10.2.

Пример из https://blog.andreamagni.eu/2017/06/scannermapp-a-qrbarcode-scanner-app-with-delphi-zxing-and-tframestand/ не заводится с ошибкой:
[MSBuild Error] The "GetItCmd" task failed unexpectedly.
System.NullReferenceException: Object reference not set to an instance of an object.
   at Borland.Build.Tasks.Common.CommandLineTask.Execute()
   at Borland.Build.Tasks.Shared.GetItCmd.Execute()
   at Microsoft.Build.BuildEngine.TaskEngine.ExecuteInstantiatedTask(EngineProxy engineProxy, ItemBucket bucket, TaskExecutionMode howToExecuteTask, ITask task, Boolean& taskResult)

Как-то все выглядит безнадежно.

Ссылка на комментарий
  • 0

Вопрос по ZXing. А можно ли как-то ограничить количество проверяемых форматов штрихкодов. Он в режиме auto не всегда стабильно работает. Мне нужно проверять всего 2 вида штрикода EAN13 и CODE_39, но как я понят там только или "Авто" или один конкретный формат можно указать, по крайней мере я не смог найти как туда подсунуть лист форматов.

Если кто решил эту проблему, подскажите пожалуйста.

Ссылка на комментарий
  • 0
  hints: TDictionary<TDecodeHintType, TObject>;
  l: TList<TBarcodeFormat>;
begin
    if not Assigned(FScanManager) then
    begin
      hints := TDictionary<TDecodeHintType, TObject>.Create();
      l:=TList<TBarcodeFormat>.Create;
      l.Add(TBarcodeFormat.QR_CODE);
      hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l);
      FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints);

не тестил

Изменено пользователем Slym
Ссылка на комментарий
  • 0
9 часов назад, Slym сказал:

  hints: TDictionary<TDecodeHintType, TObject>;
  l: TList<TBarcodeFormat>;
begin
    if not Assigned(FScanManager) then
    begin
      hints := TDictionary<TDecodeHintType, TObject>.Create();
      l:=TList<TBarcodeFormat>.Create;
      l.Add(TBarcodeFormat.QR_CODE);
      hints.Add(ZXing.DecodeHintType.POSSIBLE_FORMATS, l);
      FScanManager := TScanManager.Create(TBarcodeFormat.QR_CODE, hints);

не тестил

Спасибо, работает!

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...