content: 
  package com.banrossyn.imageloader.core;
  
  import android.graphics.Bitmap;
  import android.os.Handler;
  import android.widget.ImageView;
  import com.banrossyn.imageloader.core.assist.LoadedFrom;
  import com.banrossyn.imageloader.core.process.BitmapProcessor;
  import com.banrossyn.imageloader.utils.L;
  
  /**
   * Presents process'n'display image task. Processes image {@linkplain Bitmap} and display it in {@link ImageView} using
   * {@link DisplayBitmapTask}.
   *
   * @author rossyn (banrossyn[at]gmail[dot]com)
   * @since 1.8.0
   */
  final class ProcessAndDisplayImageTask implements Runnable {
  
  	private static final String LOG_POSTPROCESS_IMAGE = "PostProcess image before displaying [%s]";
  
  	private final ImageLoaderEngine engine;
  	private final Bitmap bitmap;
  	private final ImageLoadingInfo imageLoadingInfo;
  	private final Handler handler;
  
  	public ProcessAndDisplayImageTask(ImageLoaderEngine engine, Bitmap bitmap, ImageLoadingInfo imageLoadingInfo,
  			Handler handler) {
  		this.engine = engine;
  		this.bitmap = bitmap;
  		this.imageLoadingInfo = imageLoadingInfo;
  		this.handler = handler;
  	}
  
  	@Override
  	public void run() {
  		L.d(LOG_POSTPROCESS_IMAGE, imageLoadingInfo.memoryCacheKey);
  
  		BitmapProcessor processor = imageLoadingInfo.options.getPostProcessor();
  		Bitmap processedBitmap = processor.process(bitmap);
  		DisplayBitmapTask displayBitmapTask = new DisplayBitmapTask(processedBitmap, imageLoadingInfo, engine,
  				LoadedFrom.MEMORY_CACHE);
  		LoadAndDisplayImageTask.runTask(displayBitmapTask, imageLoadingInfo.options.isSyncLoading(), handler, engine);
  	}
  }
  