CameraScanner コンポーネント — sgcHTML | eSeGeCe

CameraScanner

TsgcHTMLComponent_CameraScanner — Delphi、C++ Builder、.NET で、ブラウザー自身のネイティブデコーダーでバーコードや QR コードをスキャンするライブカメラパネルをレンダリングします。サードパーティ製ライブラリは不要で、写真撮影と手動入力によるフォールバックも常に利用できます。

TsgcHTMLComponent_CameraScanner

ModeFormats を設定してから HTML プロパティを読み取ります。パネルはカメラを起動し、ブラウザーの BarcodeDetector でデコードして、結果を FieldName の下にポストします。

コンポーネントクラス

TsgcHTMLComponent_CameraScanner

レンダリング内容

カメラのビューファインダーパネル + 隠しフィールド + インラインスクリプト

ファミリー

フォーム & 入力

言語

Delphi, C++ Builder, .NET

ブラウザー自身のスキャナーに任せる

同梱するデコーダーはなく、CDN から読み込むものもありません。BarcodeDetector が利用できない環境では、パネルがその旨を表示しつつ、手動入力と写真撮影で動作を継続します。

uses
  sgcHTML_Component_CameraScanner;

var
  oScanner: TsgcHTMLComponent_CameraScanner;
begin
  oScanner := TsgcHTMLComponent_CameraScanner.Create(nil);
  try
    oScanner.ScannerID := 'receiving_scan';
    oScanner.Mode := smBoth;               // scan barcodes AND capture a photo
    oScanner.Formats := 'qr_code,ean_13,code_128';
    oScanner.FieldName := 'sku';
    oScanner.ContinuousScan := True;
    oScanner.BeepOnScan := True;

    WebModule.Response := oScanner.HTML;   // camera panel + hidden fields + inline script
  finally
    oScanner.Free;
  end;
end;
// includes: sgcHTML_Component_CameraScanner.hpp

TsgcHTMLComponent_CameraScanner *oScanner = new TsgcHTMLComponent_CameraScanner(NULL);
try
{
  oScanner->ScannerID = "receiving_scan";
  oScanner->Mode = smBoth;
  oScanner->Formats = "qr_code,ean_13,code_128";
  oScanner->FieldName = "sku";
  oScanner->ContinuousScan = true;
  oScanner->BeepOnScan = true;

  String html = oScanner->HTML;   // camera panel + hidden fields + inline script
}
__finally
{
  delete oScanner;
}
using esegece.sgcWebSockets;

var scanner = new TsgcHTMLComponent_CameraScanner();
scanner.ScannerID = "receiving_scan";
scanner.Mode = smBoth;
scanner.Formats = "qr_code,ean_13,code_128";
scanner.FieldName = "sku";
scanner.ContinuousScan = true;
scanner.BeepOnScan = true;

string html = scanner.HTML;   // camera panel + hidden fields + inline script

主なプロパティとメソッド

最もよく使うメンバーです。

Mode

smBarcodesmPhoto、または既定値の smBothsmBarcode では撮影ボタンが描画されず、smPhoto ではスキャンループ自体が省略されます。

Formats

BarcodeDetector のフォーマット文字列をカンマ区切りで指定します。既定値は qr_code,ean_13,code_128 で、ブラウザーのデコーダーに渡す JS 配列へエスケープされて渡されます。

FacingMode

sfEnvironment(既定値、背面カメラ)または sfUser(前面カメラ)。

ContinuousScan

既定値の True では、読み取り成功後もデコードを継続します。False にすると、最初のスキャン成功時にカメラが自動停止します。

FieldName

スキャン結果をポストする隠しフィールド名です。撮影した写真は FieldName_photo の下に JPEG の data URL としてポストされます。

WSSend / Action

すべてのスキャン結果を sgcHTMX の WebSocket ブリッジ経由でプッシュするか、Action に POST します。いずれの場合も sgcCameraScanner:scan の DOM イベントが必ず発火します。

さらに詳しく

オンラインヘルプこのコンポーネントの完全な API リファレンスと使用ガイドです。
すべての sgcHTML コンポーネント80 以上のコンポーネントの全機能マトリックスを閲覧できます。
無料体験版のダウンロード30 日間の体験版には 60.HTML デモプロジェクトが付属します。
価格完全なソースコード付きの Single、Team、Site ライセンス。
最もお得な選択: All-AccesseSeGeCe の全製品にプレミアムサポートが付いて、年間 €1,059 からご利用いただけます。
All-Access の価格を見る

始める準備はできましたか?

無料体験版をダウンロードして、Delphi、C++ Builder、.NET で Web UI の構築を始めましょう。