Jump to content

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


Александр

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...

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.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...