3个不稳定版本
使用旧的Rust 2015
0.2.0 | 2018年5月8日 |
---|---|
0.1.1 | 2018年5月7日 |
0.1.0 | 2018年5月7日 |
#873 in 图像
44KB
929 行
zbars
从zbar-rs重命名
为zbar库提供高级Rust绑定
刚刚开始实现zbar条码扫描库的高级Rust绑定。
有些功能已经实现,但仍有很多工作要做。所以不要期望它完美无缺。并且预期会有问题出现!
构建和运行
为了构建zbars,您需要zbar原生库
。
Linux
在Linux上,您可以简单地安装zbar开发包。构建脚本使用pkg-config
来探测zbar原生库。
Ubuntu
# apt install libzbar-dev
Arch Linux
# pacman -S zbar
默认启用功能zbar_fork_if_available
,并针对zbar 0.2
构建crate,这是一个较新的分支(如果pkg-config
找到的话)。
在Linux上运行二进制文件时无需考虑特殊事项。
Windows
在Windows上构建有点不舒服。我只在x64和MSVC工具链上进行了测试。
首先,您必须下载此ZBar Visual Studio项目。
您可以选择构建项目或直接使用项目lib
目录中的预构建二进制文件。然后设置以下环境变量以进行构建
ZBAR_LIB_DIR="build output directory or directory where prebuilds are stored"
ZBAR_INCLUDE_DIR="directory where zbar.h is stored (usually named include)"
为了运行,您还需要编译libiconv或从其他地方下载libiconv.dll
。lib目录中的libzbar64-0.dll
和libiconv.dll
都必须复制到您的二进制文件所在的目录。
用法
扫描图像以查找二维码
extern crate zbars;
use zbars::prelude::*;
pub fn main() {
let mut image = ZBarImage::from_path("test/qrcode.png")
.expect("unable to create image");
let image_scanner = ImageScanner::builder()
.with_config(ZBarSymbolType::ZBAR_QRCODE, ZBarConfig::ZBAR_CFG_ENABLE, 1)
.build();
let symbol_set = image_scanner.scan_image(&mut image)
.expect("error on scanning image");
symbol_set.iter()
.for_each(|symbol| {
println!("symbol decoded: {}", symbol.data());
symbol.polygon().iter()
.enumerate()
.for_each(|(i, point)| {
println!("{}. point: {:?}", i, point);
})
});
}
依赖项
~0.3–5MB
~57K SLoC