layout | title | description | keywords | needAutoGenerateSidebar | noTitleIndex | multiProgrammingLanguage | enableLanguageSelection | needGenerateH3Content | permalink |
---|---|---|---|---|---|---|---|---|---|
default-layout |
Decode Methods - Dynamsoft Barcode Reader iOS API Reference |
This page shows Decode methods of Dynamsoft Barcode Reader for iOS SDK. |
decodeFileWithName, decodeImage, decodeBuffer, decodeBase64, decode methods, api reference, objective-c, oc, swift |
true |
true |
true |
true |
false |
/programming/objectivec-swift/api-reference/primary-decode-v9.6.20.html |
Method | Description |
---|---|
decodeBuffer(ImageData) |
Decode barcodes from a pixel buffer with width, height, stride and pixel format info. |
decodeBuffer |
Decode barcodes from a pixel buffer with width, height, stride and pixel format info. |
decodeFileWithName |
Decode barcodes from a specified image file. |
decodeFileInMemory |
Decode barcodes from a file that is read in the memory. |
decodeBase64 |
Decode barcodes from a base64 encoded string. |
decodeImage |
Decode barcodes from a UIImage . |
Decode barcodes from a pixel buffer with width, height, stride and pixel format info. Generally, this method is used to process the video streaming. You can get a coordinate transformation matrix if you include the orientation information of the image.
>- Objective-C >- Swift > >1. ```objc - (NSArray* _Nullable)decodeBuffer:(iImageData* _Nonnull)imageData error:(NSError* _Nullable * _Nullable)error; ``` 2. ```swift func decodeBuffer(_ imageData: iImageData) throws -> [iTextResult] ```Parameters
[in] imageData
: An iImageData
object that includes the pixel buffer, width, height, stride and pixel format of the image. You can get it from AVCaptureVideoDataOutput
or DynamsoftCameraEnhancer
.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
If you have imported DynamsoftCameraEnhancer.framework, you can get video frames from the frameOutputCallback
. DCEFrame object contains all required parameters of decodeBuffer
method.
If you are acquiring video frames from captureOutput
callback, you can use the following code to extract the required parameters from sampleBuffer
.
View sample
DecodeWithAVCaptureSession
to see how to process the video streaming.
Decode barcodes from image data that including pixel buffer, width, height, stride and pixel format.
>- Objective-C >- Swift > >1. ```objc - (NSArray* _Nullable)decodeBuffer:(NSData* _Nonnull)buffer withWidth:(NSInteger)width height:(NSInteger)height stride:(NSInteger)stride format:(EnumImagePixelFormat)format error:(NSError* _Nullable * _Nullable)error; ``` 2. ```swift func decodeBuffer(_ buffer: Data, width: Int, height: Int, stride: Int, format: EnumImagePixelFormat) throws -> [iTextResult] ```Parameters
[in] buffer
: The array of bytes that stores the pixel buffer of the image.
[in] width
: The width of the image in pixels.
[in] height
: The height of the image in pixels.
[in] stride
: The stride is measured by the byte
length of each line in the buffer
.
[in] format
: The image pixel format used in the image byte array.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
>- Objective-C >- Swift > >1. ```objc [_dce addListener:self]; //Get frames in callback methods. - (void)frameOutPutCallback:(DCEFrame *)frame timeStamp:(NSTimeInterval)timeStamp{ NSArray* barcodeResults = [barcodeReader decodeBuffer:frame.imageData withWidth:frame.width height:frame.height stride:frame.stride format:frame.pixelFormat error:nil]; } ``` 2. ```swift func frameOutPutCallback(_ frame: DCEFrame, timeStamp: TimeInterval){ do{ let barcodeResults = try barcodeReader.decodeBuffer(frame.imageData, withWidth: frame.width, height: frame.height, stride: frame.stride, format: EnumImagePixelFormat(rawValue: frame.pixelFormat) ?? EnumImagePixelFormat.ARGB_8888) }catch{ // Add your code to deal with exceptions } } ```Decode barcodes from a specified image file.
>- Objective-C >- Swift > >1. ```objc - (NSArray* _Nullable)decodeFileWithName:(NSString* _Nonnull)path error:(NSError* _Nullable * _Nullable)error; ``` 2. ```swift func decodeFileWithName(_ path: String) throws -> [iTextResult] ```Parameters
[in] name
: The local path of the file. It supports BMP, TIFF, JPG, PNG and PDF files.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The file is not found.
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
>- Objective-C >- Swift > >1. ```objc NSArray* barcodeResults = [barcodeReader decodeFileWithName:@"your file path" error:&error]; ``` 2. ```swift do{ let barcodeResults = try barcodeReader.decodeFileWithName("your file path") }catch{ // Add your code to deal with exceptions } ```Decode barcodes from a file that is read in the memory.
>- Objective-C >- Swift > >1. ```objc - (NSArray *_Nullable)decodeFileInMemory:(NSData *_Nonnull)buffer error:(NSError *_Nullable *_Nullable)error; ``` 2. ```swift func decodeFile(inMemory buffer: Data) throws -> [iTextResult] ```Parameter
[in] buffer
: The image file that is read in memory.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
>- Objective-C >- Swift > >1. ```objc NSError __autoreleasing * _Nullable error; NSData * imageBuffer = [[NSData alloc] initWithContentOfFile:@"The file path"]; NSArray* barcodeResults = [barcodeReader decodeFileInMemory:imageBuffer error:&error]; ``` 2. ```swift do{ let imageBuffer = try NSData.init(contentsOfFile:"The file path") let barcodeResults = try barcodeReader.decodeFileInMemory(imageBuffer) }catch{ // Add your code to deal with exceptions } ```Decode barcodes from an image file encoded as a base64 string.
>- Objective-C >- Swift > >1. ```objc - (NSArray* _Nullable)decodeBase64:(NSString* _Nonnull)base64 error:(NSError* _Nullable * _Nullable)error; ``` 2. ```swift func decodeBase64(_ base64: String) throws -> [iTextResult] ```Parameters
[in] base64
: A base64 encoded string that represents an image.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
>- Objective-C >- Swift > >1. ```objc NSError __autoreleasing * _Nullable error; NSArray* barcodeResults = [barcodeReader decodeBase64:@"file in base64 string" error:&error]; ``` 2. ```swift do{ let barcodeResults = try barcodeReader.decodeBase64("file in base64 string") }catch{ // Add your code to deal with exceptions } ```Decode barcodes from a UIImage.
>- Objective-C >- Swift > >1. ```objc - (NSArray* _Nullable)decodeImage:(UIImage* _Nonnull)image error:(NSError* _Nullable * _Nullable)error NS_SWIFT_NAME(decodeImage(_:)); ``` 2. ```swift func decodeImage(_ image: UIImage) throws -> [iTextResult] ```Parameters
[in] image
: A UIImage object.
[in,out] error
: A pointer to an error object.
An error occurs when:
- The library failed to read the image.
- The image data type is not supported.
Return Value
The iTextResult
of each successfully decoded barcode.
Code Snippet
>- Objective-C >- Swift > >1. ```objc UIImage *image = [[UIImage alloc] init]; NSError __autoreleasing * _Nullable error; NSArray* barcodeResults = [_barcodeReader decodeImage:image error:&error]; ``` 2. ```swift let frameImage = dce.getFrameFromBuffer(true).toUIImage() do{ let barcodeResults = try barcodeReader.decodeImage(frameImage) }catch{ // Add your code to deal with exceptions } ```