/**
   * *****************************************************************************************************************
   *
   * <p>Post-processes a raw image using the installed postprocessor, if any.
   *
   * @param image the raw image to postprocess
   * @return the post-processed image
   *     <p>****************************************************************************************************************
   */
  @Nonnull
  protected BufferedImage postProcess(
      final @Nonnull BufferedImage image,
      final @Nonnull RAWMetadataSupport metadata,
      final @Nonnull RAWImageReadParam readParam) {
    logger.fine("postProcess(%s, %s, %s)", image, metadata.getClass(), readParam);
    final Source source = readParam.lookup(Source.class);
    final PostProcessor postProcessor =
        !source.needsPostProcessor() ? null : postProcessorMapBySpiClass.get(getClass());
    logger.finer(">>>> source: %s, postProcessor: %s", source, postProcessor);

    return (postProcessor != null) ? postProcessor.process(image, metadata, readParam) : image;
  }