Table of contents
Swift
Objective-C

Get Original Image

Features on this page are only available for the Foundational APIs.

Keep your current result output logic unchanged. Use originalImageHashId from DecodedBarcodesResult to fetch the original image only when needed.

  • Java
  • Kotlin
  1. public void onDecodedBarcodesReceived(@NonNull DecodedBarcodesResult result) {
      ImageData originalImage = mRouter.getIntermediateResultManager().getOriginalImage(result.getOriginalImageHashId());
    }
    
  2. override fun onDecodedBarcodesReceived(result: DecodedBarcodesResult) {
       val originalImage = mRouter.intermediateResultManager.getOriginalImage(result.originalImageHashId)
    }
    

Include Original Image in Results

Enable original image output in settings so each capture result can directly contain the original image item. This is convenient for downstream processing, but usually adds more data to each result.

  • Java
  • Kotlin
  1. try { 
       SimplifiedCaptureVisionSettings settings = mRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES);
       // Set the outputOriginalImage to true so that the original image will be included in the CapturedResultReceiver.
       settings.outputOriginalImage = true;
       mRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings);
    } catch (CaptureVisionRouterException e) {
       throw new RuntimeException(e);
    }
    mRouter.addResultReceiver(new CapturedResultReceiver() {
       @Override
       public void onCapturedResultReceived(@NonNull CapturedResult result) {
          if (result.getItems().length>1)
          {
             for(CapturedResultItem item:result.getItems())
             {
                    if (item.getType() == EnumCapturedResultItemType.CRIT_BARCODE)
                    {
                       // Use barcode result
                    }else if (item.getType() == EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE)
                    {
                       // USe original image
                    }
             }
          }
       }
    });
    
  2. try {
       val settings = mRouter.getSimplifiedSettings(EnumPresetTemplate.PT_READ_BARCODES)
       // Set outputOriginalImage to true so that the original image will be included in CapturedResultReceiver.
       settings.outputOriginalImage = true
       mRouter.updateSettings(EnumPresetTemplate.PT_READ_BARCODES, settings)
    } catch (e: CaptureVisionRouterException) {
       throw RuntimeException(e)
    }
    mRouter.addResultReceiver(object : CapturedResultReceiver {
       override fun onCapturedResultReceived(result: CapturedResult) {
          if (result.items.size > 1) {
             for (item in result.items) {
                    if (item.type == EnumCapturedResultItemType.CRIT_BARCODE) {
                       // Use barcode result
                    } else if (item.type == EnumCapturedResultItemType.CRIT_ORIGINAL_IMAGE) {
                       // Use original image
                    }
             }
          }
       }
    })
    

This page is compatible for: