Topics   All   MacOS (Only)   Windows (Only)   Linux (Only, Not)   iOS (Only, Not)  
Components   Crossplatform Mac & Win   Server   Client   Old   Deprecated   Guides   Examples   Videos
New in version: 9.1   9.2   9.3   9.4   9.5   10.0   10.1   10.2   10.3   10.4    Statistic  

Barcode.Detect

Detects a barcode.

Component Version macOS Windows Server FileMaker Cloud FileMaker iOS SDK
Barcode 3.5 Yes Yes Yes Yes Yes
MBS( "Barcode.Detect"; Image; type { ; ReturnType; TryRotation; Encoding } )   More

Parameters

Parameter Description Example Flags
Image The image to scan for a barcode. Can be container with image or an Image reference number from our GraphicsMagick image functions. $image
type Which scanner to use. Supported types: Aztec, Codabar, Code39, Code93, Code128, DataMatrix, EAN8, EAN13, ITF, PDF417, QRCode, UPCA and UPCE. Pass All to scan for all types. "QRCode"
ReturnType A boolean to return the type as prefix. Pass 1 if you need prefix. Default is 0 for no prefix. 1 Optional
TryRotation A boolean value. If 1, the plugin will rotate the image 90° to find vertical barcode. Default is 0. 0 Optional
Encoding The text encoding for text parameter.
Default is native.
Possible encoding names: ANSI, ISO-8859-1, Latin1, Mac, Native, UTF-8, DOS, Hex, Base64 or Windows. More listed in the FAQ.
UTF8 Optional

Result

Returns barcode content text or error.

Description

Detects a barcode.
We use zxing library internally and can only detect what this library handles.
Internally all images are converted to grayscale. For you getting image, it's very important to get a sharp image.
You may need to rotate or crop the image before sending into this method.

Leave some white space around as some decoders don't want to start with black frame on the edge. The barcodes generated with Barcode.Generate often don't read as they have too little resolution (e.g. scale up by 3x) and no white border around (e.g. add 5 pixels).

If special characters or umlauts are not recognized correct, you may have a wrong encoding. Most modern apps use UTF8 for encoding.

For MacOS and iOS, you can also detect barcodes with CoreImage.Detect function, which is faster and can better find a barcode on a picture.

Examples

Query a QRCode:

MBS( "Barcode.Detect"; Images::Image; "QRCode" )

See also

Example Databases

Blog Entries

FileMaker Magazin

Release notes

  • Version 8.2
    • Changed Barcode.Detect to report the version number read when complaining about invalid version in QRCode.
    • Fixed crash with Barcode.Detect with out of bounds access in image for bad QRCodes.
  • Version 8.0
    • Fixed out of bounds problem in Barcode.Detect. And now returns checksum errors properly.

Created 18th August 2014, last changed 10th June 2020


Backdrop.Install   -   Barcode.DrawBarcode

Feedback: Report problem or ask question.




Links
MBS Xojo tutorial videos