- Fixed a crash when parsing a particular VCard with a blank entry.
[zxing.git] / core / src / com / google / zxing / Reader.java
1 /*
2  * Copyright 2007 ZXing authors
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 package com.google.zxing;
18
19 import java.util.Hashtable;
20
21 /**
22  * Implementations of this interface can decode an image of a barcode in some format into
23  * the String it encodes. For example, {@link com.google.zxing.qrcode.QRCodeReader} can
24  * decode a QR code. The decoder may optionally receive hints from the caller which may help
25  * it decode more quickly or accurately.
26  *
27  * See {@link com.google.zxing.MultiFormatReader}, which attempts to determine what barcode
28  * format is present within the image as well, and then decodes it accordingly.
29  *
30  * @author srowen@google.com (Sean Owen), dswitkin@google.com (Daniel Switkin)
31  */
32 public interface Reader {
33
34   /**
35    * Locates and decodes a barcode in some format within an image.
36    *
37    * @param image image of barcode to decode
38    * @return String which the barcode encodes
39    * @throws ReaderException if the barcode cannot be located or decoded for any reason
40    */
41   Result decode(MonochromeBitmapSource image) throws ReaderException;
42
43   /**
44    * Locates and decodes a barcode in some format within an image. This method also accepts
45    * hints, each possibly associated to some data, which may help the implementation decode.
46    *
47    * @param image image of barcode to decode
48    * @param hints passed as a {@link Hashtable} from {@link DecodeHintType} to aribtrary data. The
49    * meaning of the data depends upon the hint type. The implementation may or may not do
50    * anything with these hints.
51    * @return String which the barcode encodes
52    * @throws ReaderException if the barcode cannot be located or decoded for any reason
53    */
54   Result decode(MonochromeBitmapSource image, Hashtable hints) throws ReaderException;
55
56 }