---
name: "Barcode::ZBar::Processor"
section: "3pm"
platform: "linux"
package: "libbarcode-zbar-perl"
version: "0.23.93-8"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Barcode::ZBar::Processor"
---

# Barcode::ZBar::Processor(3pm)

self-contained bar code reader

## NAME

Barcode::ZBar::Processor - self-contained bar code reader

## SYNOPSIS

setup:

```
    use Barcode::ZBar;

    my $reader = Barcode::ZBar::Processor->new();
    $reader->init("/dev/video1", 1);
    $reader->parse_config('code39.disable');
    $reader->set_data_handler(\&my_handler);
```

scan an image:

```
    $reader->process_image($image);
```

scan from video:

```
    $reader->set_visible();
    $reader->set_active();
    $reader->user_wait();
```

## DESCRIPTION

A Barcode::ZBar::Processor may be used to quickly create stand-alone bar code scanning applications.  It has interfaces to scan images or video and to optionally display a video/image preview to a window.

This interface is not well suited for integration with an existing GUI, as the library manages the optional preview window and any user interaction.  Use a Barcode::ZBar::ImageScanner or Investigate the available widget interfaces for GUI applications.

## REFERENCE

### Methods

- **new()**

  Create a new bar code reader instance.

- init(\[*video\_device*\], \[*enable\_display*\])

  Open a video input device and/or prepare to display output.

- set\_data\_handler(\[*handler*\], \[*closure*\])

  Setup a callback to process results whenever new results are available from the video stream or a static image.  The specified callable will be invoked with the associated Barcode::ZBar::Processor object and *closure* as arguments.  Closure may be achieved either using standard Perl closure or by manually passing a scalar via *closure*.

- **is\_visible()**

  - set\_visible(\[*visible*\])

  Test/set visibility of the output window.

- set\_active(\[*active*\])

  Enable/disable video streaming and scanning for bar codes.

- **get\_results()**

  Return a list of Barcode::ZBar::Symbol results from the last scanned image or video frame.

- user\_wait(\[*timeout*\])

  Wait for the user to press a key/button or close the window.  Bar codes will continue to be processed if video is active.

- process\_one(\[*timeout*\])

  Enable video and scan until at least one barcode is found.  Note that multiple results may still be returned.

- process\_image(\[*image*\])

  Scan a Barcode::ZBar::Image for bar codes.

- parse\_config(*configstr*)

  Apply a decoder configuration setting.  See the documentation for `"zbarcam"`/`"zbarimg"` for available configuration options.

- request\_size(*width*, *height*)

  Request a preferred size for the video image from the device.  The request may be adjusted or completely ignored by the driver.  Must be called before `init()`

- force\_format(*input*, *output*)

  force specific input and output formats for debug/testing.

- set\_config(*symbology*, *config*, *value*)

  Set config for indicated symbology (0 for all) to specified value. `@returns` 0 for success, non-0 for failure (config does not apply to specified symbology, or value out of range)

## SEE ALSO

Barcode::ZBar, Barcode::ZBar::Image, Barcode::ZBar::ImageScanner

[**zbarimg**(1)](/zbarimg/1.md), [**zbarcam**(1)](/zbarcam/1.md)

http://zbar.sf.net

## AUTHOR

Jeff Brown, \<spadix@users.sourceforge.net\>

## COPYRIGHT AND LICENSE

Copyright 2008-2010 (c) Jeff Brown \<spadix@users.sourceforge.net\>

The ZBar Bar Code Reader is free software; you can redistribute it and/or modify it under the terms of the GNU Lesser Public License as published by the Free Software Foundation; either version 2.1 of the License, or (at your option) any later version.
