Java源码示例:net.sourceforge.zbar.SymbolSet
示例1
public String scan(byte[] data, int width, int height) {
if (data == null || width <= 0 || height <= 0) {
return null;
}
Image image = new Image(width, height, "Y800");
image.setData(data);
int result = scanner.scanImage(image);
if (result != 0) {
SymbolSet syms = scanner.getResults();
for (Symbol sym : syms) {
return sym.getData();
}
}
return null;
}
示例2
@Override
public ReadableMap decodeRGBBitmap(Bitmap bitmap) {
int width = bitmap.getWidth();
int height = bitmap.getHeight();
int[] pixels = new int[width * height];
bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
bitmap.recycle();
Image image = new Image(width, height, ImageFormat.RGB4.toString());
image.setData(pixels);
image = image.convert(ImageFormat.Y800.toString());
WritableMap result = null;
if (mScanner.scanImage(image) != 0) {
SymbolSet symbols = mScanner.getResults();
Symbol symbol = symbols.iterator().next();
result = Arguments.createMap();
result.putInt("format", symbolToFormat(symbol.getType()));
result.putString("content", fixEncoding(symbol.getData()));
}
return result;
}
示例3
@Override
public WritableMap decodeNV21Data(byte[] data, int width, int height, int rotation) {
Image image = new Image(width, height, ImageFormat.Y800.toString());
image.setData(data);
WritableMap result = null;
if (mScanner.scanImage(image) != 0) {
SymbolSet symbols = mScanner.getResults();
Symbol symbol = symbols.iterator().next();
result = Arguments.createMap();
result.putInt("format", symbolToFormat(symbol.getType()));
result.putString("content", fixEncoding(symbol.getData()));
}
image.destroy();
return result;
}
示例4
public String decodeWithZbar(byte[] data, int width, int height, Rect crop) {
changeZBarDecodeDataMode();
Image barcode = new Image(width, height, "Y800");
barcode.setData(data);
if (null != crop) {
barcode.setCrop(crop.left, crop.top, crop.width(), crop.height());
}
int result = mImageScanner.scanImage(barcode);
String resultStr = null;
if (result != 0) {
SymbolSet syms = mImageScanner.getResults();
for (Symbol sym : syms) {
resultStr = sym.getData();
}
}
return resultStr;
}
示例5
public String decodeWithZbar(Bitmap bitmap) {
changeZBarDecodeDataMode();
int width = bitmap.getWidth();
int height = bitmap.getHeight();
Image barcode = new Image(width, height, "Y800");
int size = width * height;
int[] pixels = new int[size];
bitmap.getPixels(pixels, 0, width, 0, 0, width, height);
byte[] pixelsData = new byte[size];
for (int i = 0; i < size; i++) {
pixelsData[i] = (byte) pixels[i];
}
barcode.setData(pixelsData);
int result = mImageScanner.scanImage(barcode);
String resultStr = null;
if (result != 0) {
SymbolSet syms = mImageScanner.getResults();
for (Symbol sym : syms) {
resultStr = sym.getData();
}
}
return resultStr;
}