Jump to content

Распознование QR кодов


Александр
 Share

Recommended Posts

В 20.01.2020 в 06:00, Yaroslav Brovin сказал:

План на ближайшие релизы такой:

  1. Расширение функционала карт: полигоны и полилинии
  2. Пуш уведомления.
  3. Сканер бар кодов.

А что не так с Пушами?

Link to comment
Share on other sites

  • 4 weeks later...
2 часа назад, Stas сказал:

Ну, что могу сказать, получилось.

Библиотека Ярослава к этому готова

Если это необходимо, постараюсь сегодня выложить пример.

Было бы очень здорово ознакомиться с примером! Респект!

Link to comment
Share on other sites

2 часа назад, Cinemaizer сказал:

Было бы очень здорово ознакомиться с примером! Респект!

Пытаюсь привести в божеский вид

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

Падаем-с.

З.ы используется Google vision api

Link to comment
Share on other sites

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

Возможно у кого-то возникнут более разумные идеи , чтобы это работало как следует.

Итак начинаем 

Прежде всего нам понадобится 

1) Кнопка для начала сканирования

2)Мемо для отображения результатов

3) TfgVideoControl для показа действий с камерой.

4) Два маленьких литра коньяка

Мы создаем имплементацию интерфейса 

type
TDetector_Processor = class(TfgAndroidListener<TfgAndroidControl>,JDetector_Processor)
public
    procedure receiveDetections(const AArg0: TJDetector_Detections);
    procedure release;
  end;


procedure TDetector_Processor.receiveDetections(
  const AArg0: TJDetector_Detections);
var J:TJSparseArray;
    B:TJBarcode;
    D:TDetector_Processor;
begin
 J:=AArg0.getDetectedItems;
 if (J.size<>0)  then
 begin
  D:=Self;
  B:=TJBarcode.Wrap(J.valueAt(0));
  TThread.Synchronize(nil,procedure
  begin
   FormMain.fgMemo1.Lines.Text:=JStringToString(B.displayValue);

 end);


 end;

end;

procedure TDetector_Processor.release;
begin
 ;
end;

Собственно говоря, он отвечает за распознавание штрих-кода.

Далее при создании формы, нам необходимо создать этот объект

 

processor:=TDetector_Processor.Create(TfgAndroidControl(TfgAndroidControlHandle(fgMemo1.Handle).NativeControl)); //Я не знаю, почему я так сделал

На кнопку мы вешаем следующий код

//Мы просим разрешения сканировать, и при получении оного пытаемся это делать.

TfgPermissionService.RequestPermissionsAsync(['android.permission.CAMERA', 'android.permission.WRITE_EXTERNAL_STORAGE'],
    procedure(const APermissionInfo: TArray<TfgPermissionInfo>) begin
      case APermissionInfo[0].CheckResult of
        TPermissionCheckResult.Granted:
         begin
          DoScan;
         end

        else
          TfgToast.Show('Camera permission is not granted. Cannot scan barcode.', TfgToastDuration.Long);
      end;
    end);

Теперь собственно, сама процедура


procedure TFormMain.doScan;
begin
 detector:=TJBarcodeDetector_Builder.Create(TfgAndroidHelper.Context).setBarcodeFormats(TJBarcode.ALL_FORMATS).build();
 detector.setProcessor(processor);
 cameraSource:=TJCameraSource_Builder.Create(TfgAndroidHelper.Context,detector).
 setRequestedPreviewSize(1920, 1080).setAutoFocusEnabled(true).build();
  cameraSource.start(
       TfgAndroidVideoControl(TfgAndroidControlHandle(fgVideoControl1.Handle).NativeControl).VideoView.getHolder());

end;

Конечно про используемые модули.

uses ...,Java.Bridge,FGX.Animation, FGX.Dialogs, FGX.Log,FGX.Helpers.Android,FGX.Image.Android,FGX.VideoControl.Android,Android.Api.ActivityAndView,FGX.Permissions,FGX.Toasts,

И в interface 

Android.Api.PlayServices.Vision

Благодарю за внимание, и прошу прощения, что так сумбурно.

  • Like 1
Link to comment
Share on other sites

  • 3 weeks later...
11 часов назад, Yaroslav Brovin сказал:

Новый компонент распознавания баркодов добавлен в 1.1.2.0

По крайне мере, я старался.

  • Like 3
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...