@Override
  public void produceResults(
      final Consumer<CloseableReference<CloseableImage>> consumer, ProducerContext context) {
    final ProducerListener2 listener = context.getProducerListener();
    final Postprocessor postprocessor = context.getImageRequest().getPostprocessor();
    Preconditions.checkNotNull(postprocessor);
    final PostprocessorConsumer basePostprocessorConsumer =
        new PostprocessorConsumer(consumer, listener, postprocessor, context);
    final Consumer<CloseableReference<CloseableImage>> postprocessorConsumer;
    if (postprocessor instanceof RepeatedPostprocessor) {
      postprocessorConsumer =
          new RepeatedPostprocessorConsumer(
              basePostprocessorConsumer, (RepeatedPostprocessor) postprocessor, context);
    } else {
      postprocessorConsumer = new SingleUsePostprocessorConsumer(basePostprocessorConsumer);
    }
    mInputProducer.produceResults(postprocessorConsumer, context);
  }
Runs a caller-supplied post-processor object.

<p>Post-processors are only supported for static bitmaps. If the request is for an animated
image, the post-processor step will be skipped without warning.
imagepipeline/src/main/java/com/facebook/imagepipeline/producers/PostprocessorProducer.java